我有3张与我的问题相关的表格;
用户=> u_id |如first_name
对话=> c_id | bla bla
ConversaionMember => c_id | u_id | bla bla
我要问的是,我希望获得有关用户3(我的意思是用户ID)与该对话中所有其他用户的对话的所有信息
作为一个例子
Conversation
1
2
ConversationMember (c_id,u_id)
1 1
1 2
1 3
2 1
2 3
我想要一个查询,当我要求用户2时,我会得到结果,其中包含用户2中包含的对话的所有信息
ConversationMember (c_id,u_id)
1 1
1 2
1 3
答案 0 :(得分:1)
如果我理解正确,您希望ConversationMember
中所有成员都为2
(或其他)的转化行。如果是这样的话:
select cm.*
from ConversationMember cm
where exists (select 1
from ConversationMember cm2
where cm2.u_id = 2 and
cm2.c_id = c.c_id
);
答案 1 :(得分:0)
以下查询将返回会话成员表中用户编号为3的会话的所有记录
SELECT * FROM `ConversationMember` WHERE `c_id` IN (SELECT `c_id` FROM `ConversationMember` WHERE `u_id`=3)
无需创建联接