我有两个表:
聊天(from
就是发送第一条消息的人)
id | id_from | id_to
1 | 1 | 2
2 | 1 | 3
3 | 3 | 2
4 | 4 | 1
消息
id | content | date | id_chat | id_from | id_to
1 | hi | 2017-10-04 23:14:41 | 1 | 1 | 2
2 | hello | 2017-10-04 23:15:03 | 1 | 2 | 1
3 | heey | 2017-10-04 23:40:00 | 4 | 4 | 1
我想获取每次对话的最后一条消息。
我试过了(1
是用户登录的 id):
SELECT MAX(id) AS idMessage, id_from, id_to, content, date
FROM message
WHERE 1 IN (id_from, id_to)
GROUP BY id_chat
ORDER BY idMessage
DESC LIMIT 10
我正在获取最新的对话,但我收到的是每个对话的第一条消息,而不是最后一条。如何获取最后一条消息?
最佳答案
select m1.*
from messages m1
join
(
SELECT MAX(id) as id
FROM message
GROUP BY id_chat
) m2 on m1.id = m2.id
关于mysql - 选择每个对话的最新消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50712857/