我目前正在尝试与Ajax进行在线聊天,并且消息通过php文件发送到我的数据库。我希望能够列出用户参与的所有会话。我们以此为例: exemple of table
我想列出从最新版本到最早版本订购的对话。
我应该与用户25846交谈....因为它是最后一条消息,然后是10206 ......最后是11627 ......
我想要的输出是一个包含3个记录的表,其中包含字段ID_to和content_msg,如上所述。 这是我正在尝试的当前SQL请求:
SELECT DISTINCT ID_to
FROM (
SELECT *
FROM messages
WHERE ID_to = 1140816689329214 OR ID_from = 1140816689329214
ORDER BY timestamp_msg DESC
) as tmp
即使这样,输出的顺序也不正确,我无法理解为什么因为我的请求有订单。
提前感谢您的任何帮助
答案 0 :(得分:1)
排序由最外层查询中的ORDER BY
确定。在子查询中排序并不重要。
这似乎就是你想要的:
SELECT id_to
FROM messages
WHERE ID_to = 1140816689329214 OR ID_from = 1140816689329214
GROUP BY id_to
ORDER BY MAX(timestamp_msg) DESC;