gpt4 book ai didi

mysql - 在 mySQL 中使用 group by 后获取最新日期

转载 作者:行者123 更新时间:2023-11-29 08:31:24 25 4
gpt4 key购买 nike

我有一个类似于下面示例的表格。我需要检索指定用户的最近日期。

id sender_id receiver_id content date               
-- --------- ----------- ------- ----
1 5 7 test 2013-03-13 10:33:54
2 13 7 test 2 2012-03-13 12:01:36
3 5 7 test 3 2013-01-05 09:15:37
4 13 7 test 4 2013-04-05 08:17:39

我当前的 SQL 如下所示:

SELECT * FROM `messages` WHERE receiver_id=7 group by sender_id

我希望结果集只包含两个条目,每个条目都有最近的日期,如下所示:

4  13        7           test 4  2013-04-05 08:17:39
1 5 7 test 2013-03-13 10:33:54

我是否需要进行某种子选择才能首先获取最近的日期?

最佳答案

您按 sender_id 进行分组,但返回所有列。非聚合行的值可能会被削弱,并且不受 order by 的影响。

您可以使用这样的查询来获取您需要的结果:

SELECT *
FROM messages
WHERE (sender_id, receiver_id, date) IN (
SELECT sender_id, receiver_id, MAX(date)
FROM messages
WHERE receiver_id=7
GROUP BY sender_id, receiver_id)

请参阅 fiddle here .

关于mysql - 在 mySQL 中使用 group by 后获取最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16491967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com