选择每个对话的最新消息

Igo*_*gor 3 mysql sql select chat group-by

我有两张桌子:

聊天(from仅发送第一条消息的人)

id | id_from | id_to
1  | 1       | 2
2  | 1       | 3
3  | 3       | 2
4  | 4       | 1
Run Code Online (Sandbox Code Playgroud)

信息

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
Run Code Online (Sandbox Code Playgroud)

我想得到每次对话的最后一条消息。

我尝试过(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
Run Code Online (Sandbox Code Playgroud)

我正在获取最新的对话,但我收到的是每个对话的第一条消息,而不是最后一条消息。如何获取最后一条消息?

jue*_*n d 5

select m1.*
from messages m1
join
(
  SELECT MAX(id) as id
  FROM message
  GROUP BY id_chat
) m2 on m1.id = m2.id
Run Code Online (Sandbox Code Playgroud)