选择MySQL Group By

时间:2016-11-06 13:59:07

标签: mysql

我在mysql中有一个表聊天,它是用户之间的对话记录。

字段是。

id,id_from,id_to,message

Example (My Data in DB):

1, 50, 10, 'Hello'
2, 10, 50 'Nice?'
3, 50, 10, 'Yeah, And you?'
4, 10, 50, 'Me too'
5, 1, 20, 'Hello'
6, 20, 1, 'Nice?'
7, 1, 20, 'Yeah, And you?'
8, 20, 1, 'Me too'
8, 50, 1, 'Hey .....'
9, 1, 50, "Enhancements ??? '
10, 50, 1 ':)'
11, 1, 50, 'LOL'

[User]
id
name

id = Paul 50
id = 1 Samuel
id = Donald 20
id = 10 Max

我需要的是通过SELECT,返回人们之间发生的最后一次对话。

例如,在我的选择中,我想知道id为50(Paul)的最后两个会话(仅显示每个会话的最后一条消息)。

Poderi如何通过MySQL做到这一点?

结果如下:

4, 10, 50, 'Me too'
11, 1, 50, 'LOL'

1 个答案:

答案 0 :(得分:0)

您可以使用以下方式获取消息的httpie

id

要获取消息,您可以使用select least(id_from, id_to), greatest(id_from, id_to), max(id) from messages m where 50 in (id_from, id_to) group by least(id_from, id_to), greatest(id_from, id_to) in。这是一种方法:

join