我正在尝试为唯一的user_id获取最新创建的日期时间。我有以下查询但它似乎没有工作......它没有得到最新创建的时间。
SELECT * FROM `chats`
WHERE receiver_id = 1
GROUP BY user_id
ORDER BY created DESC
有原因吗?
更新
其实我自己找到了答案。请看下面。我必须使用INNER JOIN来嵌套搜索和过滤结果表,然后找到使用该结果的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
答案 0 :(得分:0)
您应该使用MAX聚合函数 -
SELECT user_id, MAX(created) latest_datetime FROM chats
GROUP BY user_id;
尝试此查询,它将显示所有用户和最新创建的日期时间。