我正在我的网站上实现一个消息传递系统,并有一个表来存储会话参与者,如下所示:
conversation_id user_id
3 2
3 28
4 1
4 2
5 1
5 2
5 28
我找不到一个查询,让我检查两个用户(或更多)之间是否已存在对话。如果用户3
发送给用户2
,我基本上希望返回28
(conversation_id),反之亦然,就像我可以保持对话一样,即使他们没有明确回复了上一条消息。
答案 0 :(得分:3)
使用having
子句,您只能过滤到用户参与的conversation_id
select conversation_id
from your_table
where user_id in (2, 28)
group by conversation_id
having count(distinct user_id) = 2