0
我想顯示每個用戶的最後發佈的列表。如果我按ID分組,但是我會得到第一個帖子而不是最後一個。我如何通過UID進行分組並僅顯示最大的行Date
?MySQL Group by UserID只顯示最後一個帖子?
這是我現在想:
SELECT * FROM Posts GROUP BY `UID` ORDER BY `Date` DESC
我想顯示每個用戶的最後發佈的列表。如果我按ID分組,但是我會得到第一個帖子而不是最後一個。我如何通過UID進行分組並僅顯示最大的行Date
?MySQL Group by UserID只顯示最後一個帖子?
這是我現在想:
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.date
這個查詢應該返回整個表,非常...你確定你甚至正從每個用戶最古老的帖子? – Icarus 2012-08-13 18:58:56