Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL最新唯一用户聊天不起作用_Mysql - Fatal编程技术网

MySQL最新唯一用户聊天不起作用

MySQL最新唯一用户聊天不起作用,mysql,Mysql,我正在尝试获取唯一用户id的最新创建日期时间。我有下面的查询,但它似乎不起作用…它没有获取最新创建时间 SELECT * FROM `chats` WHERE receiver_id = 1 GROUP BY user_id ORDER BY created DESC 有什么原因吗 更新: 事实上我自己找到了答案。请看下面。我必须对嵌套的搜索和筛选结果表使用内部联接,然后使用该结果的where子句查找,然后在该表上留下联接以获取所需的数据 SELECT c.*, users.username

我正在尝试获取唯一用户id的最新创建日期时间。我有下面的查询,但它似乎不起作用…它没有获取最新创建时间

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表的结构是什么,可能还有该表中的一些示例数据。这仅在需要显示分组和聚合字段时有效。否则,当显示其他字段时,您应该使用分组查询,就像您在问题中所写的那样。