我有單個聊天表,如圖所示。我想將聊天列表分組,如Facebook風格。 MySql如何獲取記錄以顯示在聊天對話列表中
這裏用戶2被記錄在和他的談話正在使用
SELECT *
FROM `chat` `t`
WHERE `from` =2
OR `to` =2
ORDER BY sent DESC
選擇,但在這裏我要2和任何其他用戶之間的最新的一個條目。其中2可以在從或到列中。作爲最終結果,它應該分別返回2個分別爲25和17的條目。
我有單個聊天表,如圖所示。我想將聊天列表分組,如Facebook風格。 MySql如何獲取記錄以顯示在聊天對話列表中
這裏用戶2被記錄在和他的談話正在使用
SELECT *
FROM `chat` `t`
WHERE `from` =2
OR `to` =2
ORDER BY sent DESC
選擇,但在這裏我要2和任何其他用戶之間的最新的一個條目。其中2可以在從或到列中。作爲最終結果,它應該分別返回2個分別爲25和17的條目。
SELECT * , (
r.from + r.to
) AS dist
FROM (
SELECT *
FROM `cometchat` t
WHERE (
t.from =2
OR t.to =2
)
ORDER BY t.sent DESC
)r
GROUP BY dist
ORDER BY r.sent DESC
非常感謝你在我的查詢中提供的幫助..... –
試試這個
SELECT *
FROM `chat` `t`
WHERE id IN (SELECT MAX(s.id) FROM chat s WHERE s.`from` =2
OR s.`to` =2 GROUP BY (IF(s.`from`=2, s.`to`, s.`from`)))
ORDER BY sent DESC
不斷掙扎?考慮提供一個sqlfiddle – Strawberry