Mysql查询头疼

时间:2017-03-15 07:26:37

标签: mysql

所以我的网站上的用户之间有一个消息表。

id            from_user_id        to_user_id        content
 1             A                   B                 Hello, what's your name
 2             B                   A                 My name is B, what's your name
 3             A                   B                 My name is A
 4             C                   A                 Hello A, my name is C`

因此,在我的用户A的列表消息页面中,我想将其列出如下(对于来自/到用户A的所有消息到/用户B的消息,我只想获取最后一条消息):

Check all (checkbox) User name Message B My name is A C Hello A, my name is C

我尝试过这样的事情:

SELECT * FROM message WHERE from_user_id = "A" OR to_user_id = "A" GROUP_BY to_user_id ORDER BY id

但是它会列出从用户A到用户B的最后两条消息,以及B到A:

- )我的名字是A

- )我的名字是B,你的名字是什么

解决问题的方法是什么?

2 个答案:

答案 0 :(得分:1)

这个怎么样:

select user_name, content
from message m,
(select max(id) as id, case when from_user_id='A' then to_user_id else from_user_id end as user_name from message where from_user_id='A' or to_user_id='A' group by user_name) a
where a.id = m.id

答案 1 :(得分:0)

SELECT * FROM message WHERE from_user_id =" A"或者to_user_id =" A"