我正在编写一个完美的私人消息系统。我需要为组消息编写一个SQL查询,该消息应该只出现一次。总之,我想要一个像Facebook一样的“对话视图”,只显示发送或收到的最新消息。后端脚本是私有消息系统中的PHP。
我附了一个屏幕截图:
这是我正在使用的附加查询。
测试演示已上传到以下地址:http://developers89.byethost14.com/messages/
答案 0 :(得分:7)
SELECT *
FROM conversation
WHERE (LEAST(sender_ID, receiverID), GREATEST(sender_ID, receiverID), date)
IN
(
SELECT LEAST(sender_ID, receiverID) x,
GREATEST(sende_ID, receiverID) y,
MAX(date) max_date
FROM conversation
GROUP BY x, y
)
AND '$uid' IN (sender_ID, receiverID)
// AND other conditions if you have ...
// ORDER BY ...
// LIMIT ...