用于sqlite3和mysql的聊天表的SQL查询

时间:2011-08-25 12:35:31

标签: mysql sqlite

我有一个简单的聊天表:

id, sender_id, sender_name, recipient_id, recipient_name, content

尝试对Person A(我)和(其他人)或(其他人)和Person A

之间发生的所有聊天进行分组

有人会怎么做?

修改

目标是获取人员A所在的所有聊天记录的列表,并仅列出其他人。

即。如果A人与B人,C人和D人聊天,我想要显示人B,C人和D人的名单。然后在下一个视图中,我将显示与A人和其他人的聊天。

2 个答案:

答案 0 :(得分:0)

select * from chat where
recipient_id in (persona, personb )
and sender_id in ( persona, personb )

编辑:

从技术上讲,你不是在SQL意义上“分组”,你可能正在订购结果。

类似的东西:

select id, content, sender_id as other_person
from chat 
where recipient_id = persona
union
select id, content, recipient_id
from chat 
where sender_id = persona
order by other_person

另外,请考虑现在正常化而不是以后。你的'不查询两次'的想法是不正确的。最好不要重复这些名字。

答案 1 :(得分:-1)

试试这个

SELECT * FROM chatTable
WHERE sender_name IN('personA','personB') AND
recipient_name IN('personA','personB');