所以我的网站上的用户之间有一个消息表。
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,你的名字是什么
解决问题的方法是什么?
答案 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"