我正在尝试显示包含每个用户的最后帖子的列表。如果我按ID分组,但我得到的是第一个帖子而不是最后一个帖子。如何按UID分组并仅显示最大Date
的行?
这就是我现在正在尝试的事情:
SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
答案 0 :(得分:0)
您可以使用联接来获取最大日期,然后只选择这些记录:
select p.*
from posts p join
(select uid, max(date) as maxdate
from posts p
group by uid
) pmax
on p.uid = pmax.uid and
p.date = pmax.date
答案 1 :(得分:0)
因为您希望每个用户拥有最大的Date
,所以您可以使用MySQL的MAX()
:
SELECT MAX(`Date`), * FROM Posts GROUP BY `UID`
您也可以在HAVING
子句中指定它:
SELECT *
FROM Posts
GROUP BY `UID`
HAVING `Date` = MAX(`Date`)
ORDER BY `Date` DESC