2014-04-26 141 views
0

我有3個表涉及我的問題;子查詢和加入

User => u_id | first_name

對話=> c_id | bla bla

ConversaionMember => c_id | u_id |喇嘛喇嘛

就是我要問的是,我想有關於有用戶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 

回答

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 
      ); 
+0

這個這就是我所要求的 – onurfoca

0

下面的查詢將返回從談話中成員表中的所有記錄會話用戶數3是

SELECT * FROM `ConversationMember` WHERE `c_id` IN (SELECT `c_id` FROM `ConversationMember` WHERE `u_id`=3) 

部分有沒有必要建立連接