MySQL最新唯一用户聊天不起作用
我正在尝试获取唯一用户id的最新创建日期时间。我有下面的查询,但它似乎不起作用…它没有获取最新创建时间MySQL最新唯一用户聊天不起作用,mysql,Mysql,我正在尝试获取唯一用户id的最新创建日期时间。我有下面的查询,但它似乎不起作用…它没有获取最新创建时间 SELECT * FROM `chats` WHERE receiver_id = 1 GROUP BY user_id ORDER BY created DESC 有什么原因吗 更新: 事实上我自己找到了答案。请看下面。我必须对嵌套的搜索和筛选结果表使用内部联接,然后使用该结果的where子句查找,然后在该表上留下联接以获取所需的数据 SELECT c.*, users.username
SELECT * FROM `chats`
WHERE receiver_id = 1
GROUP BY user_id
ORDER BY created DESC
有什么原因吗
更新:
事实上我自己找到了答案。请看下面。我必须对嵌套的搜索和筛选结果表使用内部联接,然后使用该结果的where子句查找,然后在该表上留下联接以获取所需的数据
SELECT c.*, users.username
FROM chats c
INNER JOIN(
SELECT MAX(created) AS Date, user_id, receiver_id, chat, type, id
FROM chats
WHERE receiver_id = 1
GROUP BY user_id ) cc ON cc.Date = c.created AND cc.user_id = c.user_id
LEFT JOIN users ON users.id = c.user_id
WHERE c.receiver_id = 1
您应该使用聚合函数-
SELECT user_id, MAX(created) latest_datetime FROM chats
GROUP BY user_id;
尝试此查询,它将显示所有用户和最新创建的日期时间。您可能希望在此处发布您的表结构。能否提供有关您的问题的更多信息?例如,chats表的结构是什么,可能还有该表中的一些示例数据。这仅在需要显示分组和聚合字段时有效。否则,当显示其他字段时,您应该使用分组查询,就像您在问题中所写的那样。