我有一個小問題要解決,但我不能。我有以下chat
表:MySQL:選擇每一對的最後一行
id user friend msg date
----------------------------------------------------------------------
1 1 2 Hello Bob! 2014-07-04 01:00
2 1 2 How are you doing? 2014-07-04 01:01
3 2 1 I'm fine bro! 2014-07-04 02:30
4 1 3 Hey Mark :D 2014-07-04 02:31
5 3 1 Yo! 2014-07-04 02:32
6 4 1 Wassup?! 2014-07-04 07:00
我正在一個PHP getInbox($uid)
方法,返回在每對(用戶和朋友)的最後的消息的陣列。我試着SELECT
與GROUP BY friend
查詢,但它不完整。
SELECT * FROM `chat`
GROUP BY `friend`
WHERE `user` = $uid OR `friend` = $uid
期望的結果是:
id user friend msg date
----------------------------------------------------------------------
3 2 1 I'm fine bro! 2014-07-04 02:30
5 3 1 Yo! 2014-07-04 02:32
6 4 1 Wassup?! 2014-07-04 07:00
我希望幫助!
如果你有某種「線索」或「對話」標識符,這將會容易得多。一個簡單的方法是將所有答覆的「父」設置爲鏈中的第一個,然後選擇每個鏈中的最後一個。 – tadman
所以我猜'4,1,3'是給mark的信息,然後'5,3,1'是mark的回覆? –
我想過了,在每個聊天行上創建一個表'conversations'並設置一個外鍵。但我想用一張桌子來嘗試。 – bodruk