【发布时间】:2018-11-15 16:39:39
【问题描述】:
我有两张桌子:
聊天(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
我收到了最新的对话,但我收到的是每个对话的第一条消息,而不是最后一条。如何获取最后一条消息?
【问题讨论】:
-
我不明白我认为最新的意思是最后一条消息,可以清楚地解释你想要什么。
-
@AmiteshKumar 没错,就是最后一条消息。例如,通过上面的查询,我得到的消息是 id_chat = 1 的内容为“hi”而不是“hello”(最后一条记录)的消息
-
您可以通过聊天ID选择最大(日期)组。然后加入桌聊获得额外属性
标签: mysql sql select group-by chat