嗨我想寫一個正確的查詢MySQL從4列(從,到,內容,日期或所有,如果這更容易)檢索值2列在同一個表中是唯一的。這樣做是爲了獲取用戶X發送和接收的只有最後的消息列表我的SQL查詢基於來自兩列的唯一記錄檢索4列
表
msg_id|msg_from|msg_to|msg_new|msg_content|date
1 user1 sw1 1 message1 2014-02-06
2 user1 sw1 1 message2 2014-02-06
3 user1 sw3 0 message3 2014-02-06
4 user1 sw5 0 message4 2014-02-06
5 sw2 sm2 1 message5 0000-00-00
6 sw2 sm4 1 message6 2014-02-20
7 sw1 user1 1 message7 2014-02-20
8 user1 sw5 1 message8 2014-02-20
我最後一次嘗試:
SELECT t1.* FROM (SELECT MAX(msg_id) AS nr, msg_from, msg_to
FROM com_msg GROUP BY msg_from) AS t2
INNER JOIN com_msg t1 ON t1.msg_from=t2.msg_from AND t1.msg_id=t2.nr
WHERE t1.msg_to='sw1' OR t1.msg_from='sw1'
返回:
2| user1|sw1 |1|message2|2014-02-06
7| sw1 |user1|1|message7|2014-02-20
但應該只返回:
7| sw1 |user1|1|message7|2014-02-20
我很困惑...你原來的職位說,「想法是檢索僅由用戶X發送和接收的最後消息的列表「,但是您的示例僅顯示1條消息。你想要一條消息還是2條消息? – Scottie
我認爲你正在尋找每次對話的最後一條消息?在這種情況下,它只是一個,但可能會有更多? – fthiella