2012-08-13 58 views
0

我想顯示每個用戶的最後發佈的列表。如果我按ID分組,但是我會得到第一個帖子而不是最後一個。我如何通過UID進行分組並僅顯示最大的行DateMySQL Group by UserID只顯示最後一個帖子?

這是我現在想:

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

這個查詢應該返回整個表,非常...你確定你甚至正從每個用戶最古老的帖子? – Icarus 2012-08-13 18:58:56

回答

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