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'在内部查询打破对称 –