gpt4 book ai didi

mysql - 按最后日期分组 MYSQL

转载 作者:可可西里 更新时间:2023-11-01 08:17:39 25 4
gpt4 key购买 nike

我有这张表,

user
id
name

visit
id
id_user (fk user.id)
date
comment

如果我执行这个查询,

SELECT u.id, u.name, e.id, e.date, e.comment
FROM user u
LEFT JOIN visit e ON e.id_user=u.id

我明白了,

1 Jhon 1 2013-12-01 '1st Comment' 
1 Jhon 2 2013-12-03 '2nd Comment'
1 Jhon 3 2013-12-01 '3rd Comment'

如果我GROUP BY u.id,那么我得到

1 Jhon 1 2013-12-01 '1st Comment'

我需要 Jhon 的最后一次访问

1 Jhon 3 2013-12-04 '3rd Comment'

我试试这个

SELECT u.id, u.name, e.id, MAX(e.date), e.comment
FROM user u
LEFT JOIN visit e ON e.id_user=u.id
GROUP BY u.id

还有这个,

SELECT u.id, u.name, e.id, MAX(e.date), e.comment
FROM user u
LEFT JOIN visit e ON e.id_user=u.id
GROUP BY u.id
HAVING MAX(e.date)

我明白了

1 Jhon 1 2013-12-04 '1st Comment'

但这对我无效...我需要该用户的最后一次访问

1 Jhon 3 2013-12-01 '3rd Comment'

谢谢!

最佳答案

这应该为您提供每个用户的最后评论:

SELECT u.id, u.name, e.id, e.date, e.comment
FROM user u
LEFT JOIN (SELECT t1.*
FROM visit t1
LEFT JOIN visit t2
ON t1.id_user = t2.id_user AND t1.date < t2.date
WHERE t2.id_user IS NULL
) e ON e.id_user=u.id

关于mysql - 按最后日期分组 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377125/

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