我在mysql中有一個表。其結構是:MySql按分組排序的SQL查詢按
id sender receiver time message
-------------------------------------------------------
1 23 34 2014-11-02 14:55:02 1
2 22 34 2014-11-02 16:55:02 2
3 21 35 2014-11-02 16:55:02 5
4 23 34 2014-11-02 16:55:02 2
5 22 35 2014-11-02 16:55:02 1
現在我需要做一個查詢,如果通信超過one.Otherwise給它單列,將來自特定發件人請求一個接收器的最新消息。在這裏,我想用接收器id = 34進行查詢,它應該給我第4行和第2行。即
2 22 34 2014-11-02 16:55:02 2
4 23 34 2014-11-02 16:55:02 2
這裏我不問從數據庫的特定行數。這是一個對話db。我想要一個用戶的對話列表。當同一個發送者和接收者有多行時,我想要最新的對話。
如何做到這一點?
兩件事情:您的最後一次,你說'T1.lastTime'線一個錯字,你需要包括'WHERE接收器= 34'在外部查詢也要不然一個可以返回額外的行。否則,它的作品。 [小提琴](http://sqlfiddle.com/#!2/543b8/3) – AdamMc331 2014-11-22 19:57:49
@ McAdam331,謝謝更正。 – radar 2014-11-22 20:08:01
發生了什麼事情,第5行也被返回,因爲它連接了sender = 22和匹配時間,這就是我如何捕獲接收器錯誤。 – AdamMc331 2014-11-22 20:11:22