0
在Web應用程序內部開發用戶聊天。MySQL查詢顯示登錄用戶和其他用戶之間的聊天記錄
目標:顯示登錄用戶與之聊天並且在每個此類用戶附近的desc順序的用戶列表 - 最後一條消息(由該用戶或登錄用戶編寫)。
當前MySQL查詢:
SELECT id,
user_to,
user_from,
body,
msg_time
FROM chat
WHERE id IN (SELECT MAX(id)
FROM chat WHERE user_to=:id
OR user_from=:id
GROUP BY user_to,user_from)
ORDER BY msg_time DESC
效果很好。但!對於任何用戶A與任何用戶B的聊天,當前請求顯示2行:一個包含用戶A發送給用戶B的最近消息,以及一個用戶B發送給用戶A的最新消息。雖然我需要1行(在「行」下,我的意思是引導行數據,其中第1列是聊天發生的用戶的圖標,第2列是這兩個用戶之間的最新消息,第3列是最後一個消息的時間)。
但是,請求應顯示用戶A和用戶B過話,只顯示這一次,用戶A和B.
之間做出的最新的消息吹我的大腦了它。我想保持查詢簡短,感覺我很接近,但不能最終解決這個問題。感謝您的任何建議!
嘗試添加像'和user_to> user_from'在內部查詢打破對稱 –