我有兩個SQL表users
和messages
它看起來像這樣:獲取最新的結果與GROUP BY基於JOIN
user_id | username
--------|---------
1 | alice
2 | bob
3 | carol
message_id | sending_user_id | message | created_utc
-----------|-----------------|---------|-------------
1| 1 | a | 67
2| 1 | b | 68
3| 3 | c | 69
4| 2 | d | 70
5| 3 | e | 71
6| 1 | f | 72
我試圖寫一個SQL查詢,將導致最新message
每user
由created_utc
排列的message
取消。所以結果應該是這樣的:
message_id | sending_user_id | message | created_utc | sending_username
-----------|-----------------|---------|-------------|----------------------
6| 1 | f | 72 | alice
5| 3 | e | 71 | carol
4| 2 | d | 70 | bob
我卡在如何保證信息總是最新的用下面的查詢:
SELECT messages.message_id, messages.sending_user_id, messages.message, messages.created_utc, users.username AS sending_username
FROM messages
LEFT JOIN ON users
WHERE messages.sending_user_id=users.user_id
GROUP BY messages.sending_user_id
ORDER BY messages.created_utc DESC
編輯:我使用PostgreSQL 9.3.5
請標記與你的問題你正在使用的數據庫。 – 2014-11-07 01:11:47
@GordonLinoff done – 2014-11-07 01:14:54
許多相同的問題。 http://stackoverflow.com/questions/3800551/select-first-row-in-each-group-by-group/7630564 – 2014-11-07 02:55:27