這裏我正在擴展我的上一個問題。私人聊天系統MYSQL查詢顯示發件人/收件人的最後一條消息
Private chat system MYSQL query ORDERBY and GROUPBY
另外,我創建了一個多個表稱爲從那裏我會得到用戶信息的用戶。
信息表
message_id|sender_id||receiver_id|message_text| created_time
1 101 102 Message A 2012-06-07 08:07:18
2 101 102 Message B 2012-06-07 08:10:20
3 103 102 Message C 2012-06-07 08:12:43
用戶表:
id | name
101 bob
102 jack
103 mark
現在終於我能得到以下結果:
name|message_text | created_time
mark message C 2012-06-07 08:12:43
bob message B 2012-06-07 08:10:20
通過使用此查詢:
SELECT * FROM messages,users
WHERE messages.receiver_id = 102
AND messages.sender_id=users.id
AND messages.created_time IN
(SELECT MAX(created_time)
FROM messages
GROUP BY sender_id)
ORDER BY messages.created_time DESC
現在我想在我的結果是
如果插孔(ID:102)回覆標記(ID:103),那麼我怎麼能得到這個輸出:
name|message_text | created_time
mark message D 2012-06-07 08:12:48
bob message B 2012-06-07 08:10:20
注:此處「消息D「並且時間戳是他爲了標記而返回的。
其中MESSAGE_TEXT字段將顯示標誌和插孔 CREATED_TIME場之間的最後的消息會顯示消息創建時間和 名稱字段將顯示的人的名字向誰插孔發送或接收消息。
我想我們需要修改/拆分表,但不知道如何以及什麼查詢將執行此任務。
我在您的表格中看不到'message D' –
@Jadzia這是一個羣組消息系統嗎? – Darshana
如果'jack'回覆'mark'發信人的'message D'應該是'jack'我猜? – Darshana