[英]MySQL Group by UserID only show last post?
我正在嘗試顯示一個列表,其中包含每個用戶的最新帖子。 但是,如果我按 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.