【发布时间】:2013-12-04 13:51:15
【问题描述】:
我有这张桌子,
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'
谢谢!
【问题讨论】:
标签: mysql sql date group-by having