我想爲用戶獲取每個對話的最新消息。但是,我的組通過查詢似乎沒有帶回正確的行。這裏是我的數據:MySQL組通過使用MAX錯誤的結果
ID | MESSAGE | RELATED_ID | DATE_SENT
2 | Hi | 2 | 2013-02-21 16:03:00
3 | Hii | 2 | 2013-02-21 16:04:00
4 | Hiii | 2 | 2013-02-21 16:05:00
5 | Hiiii | 2 | 2013-02-21 16:06:00
6 | Bye | 6 | 2013-02-21 16:03:01
7 | Byee | 6 | 2013-02-21 16:04:01
8 | Byeee | 6 | 2013-02-21 16:05:01
9 | Again | 9 | 2013-02-21 16:03:02
10| Againn | 9 | 2013-02-21 16:04:02
我期待的結果是:
ID | MESSAGE | RELATED_ID | DATE_SENT
5 | Hiiii | 2 | 2013-02-21 16:06:00
8 | Byeee | 6 | 2013-02-21 16:05:01
10| Againn | 9 | 2013-02-21 16:04:02
我當前的查詢是:
SELECT MAX(ID), Message, Date_Sent, related_id FROM MESSAGES GROUP BY RELATED_ID LIMIT 0,100
,我得到的結果如下:
ID | MESSAGE | RELATED_ID | DATE_SENT
5 | Hi | 2 | 2013-02-21 16:03:00
8 | Bye | 6 | 2013-02-21 16:03:01
10| Again | 9 | 2013-02-21 16:03:02
它似乎得到正確的ID但不是該ID的正確數據。
我會很感激任何幫助,我可以得到這一點。
GROUP BY返回第一個匹配的記錄。 – 2013-02-22 12:02:04
唉!另一個毫無疑問的新SQLer被MySQL混淆了GROUP BY的非標準擴展。先進的技術與魔術無法區分,但這不是先進的技術。請閱讀:http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html – 2013-02-22 12:20:03