2016-03-30 7 views
0

UserConversation.userIdがリスト内にあり、UserConversation.userIdの一致が特定のものである行を見つけるUserConversationテーブル行から会話を検索しようとしています数。IDがリスト内にあり、数が同じである行を検索

私は会話テーブルを持っています。私は(userId、conversationId)フィールドを持つUserConversationテーブルを持っています。私の質問はどのように私は、userIdをするのは、リストとのマッチングはlist.sizeであるUserConversation.conversationIdが同じで入手できますされています

私がこれまでにサンプルとして次のクエリを持っている:

select uc.conversationid from userconversation uc where uc.userid in(3, 14, 23, 13978, 18488) group by uc.conversationid having count(*)=5 

が、このクエリ会話に追加のユーザーIDが存在する可能性のある他のUserConversation.conversationIdを私に与えます。私はちょうどカウントでそれを修飾したい。以下は

はサンプルです:

マイスレッドの表は次のようになります。

select * from conversation where id=18 

id | name   | ownerid 
------------------------------ 
18 | personal group 3| 

select * from userconversation where conversationid=18 

conversationId | userId 
----------------------- 
18    | 3 
18    | 14 
18    | 23 
18    | 13978 
18    | 18488 

は今、私はユーザーIDを持って会話3,14,23,13978,18488とだけ会話を見つけたいですその正確なユーザー数です。私はconversationIdとして18を取得するだけで、他のユーザーに加えて他のユーザーと会話することはできません。

誰でもSQLでそれを行う方法を知っていますか?私はこれがあなたの質問が明確ではないが、これはあなたが望むものであれば、これを試すため、探しているものであるかどうかわからないんだけど

おかげ

+0

いくつかのサンプルデータと予想される結果を示します。 –

+0

@vkpサンプルを追加しました。 – Sonam

+0

あなたは何を得たいでしょうか? –

答えて

0

SELECT userId FROM userconversation uc 
INNER JOIN conversation c 
ON uc.conversationId = c.Id 
+0

これは私が探しているクエリではありません。私の問題を再起させてください。 2番目のサンプルのsqlクエリに基づいて、最初のsqlクエリで指定したユーザーのみを持つconversationIdを取得するにはどうすればよいですか? – Sonam

+0

hmm、ユーザコンバージョンucからDISTINCT(uc.conversationid)を選択してください。uc.useridが(3、14、23、13978、18488)のグループで、uc.conversationidがcount(*)= 5を持つグループ DISTINCTという単語はあなたの問題を解決しますが、 –

関連する問題