0

我正在尝试显示每个用户的最新帖子列表。但是,如果我按 ID 分组,我会得到第一个帖子而不是最后一个帖子。如何按 UID 分组并仅显示最大的行Date

这就是我现在正在尝试的:

SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
4

2 回答 2

2

因为您想要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
于 2012-08-13T19:00:09.317 回答
1

您可以使用连接来执行此操作,以获取最大日期,然后仅选择这些记录:

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
于 2012-08-13T18:59:06.647 回答