我正在尝试显示每个用户的最新帖子列表。但是,如果我按 ID 分组,我会得到第一个帖子而不是最后一个帖子。如何按 UID 分组并仅显示最大的行Date
?
这就是我现在正在尝试的:
SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
我正在尝试显示每个用户的最新帖子列表。但是,如果我按 ID 分组,我会得到第一个帖子而不是最后一个帖子。如何按 UID 分组并仅显示最大的行Date
?
这就是我现在正在尝试的:
SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
因为您想要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
您可以使用连接来执行此操作,以获取最大日期,然后仅选择这些记录:
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.maxdate