MySQL Group by UserID只显示上一篇文章?

时间:2012-08-13 18:55:42

标签: mysql

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

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

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

2 个答案:

答案 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