2017-02-28 20 views
-1

共有する2つの行を検索します( - インデックスです)、 のuserId(int型 - インデックス)MYSQL - 私は、次の列があるChatParticipantsと呼ばれているテーブル、持っている同じインデックス

+-----------------------------+------------------------------+ | userId | chatId | +------------------------------------------------------------+ | 5 | 98 | +------------------------------------------------------------+ | 10 | 98 | +-----------------------------+------------------------------+

chatIdを

そして、前者に加えてチャットテーブル。

たとえば、私がID#5のユーザーで、ID#10のユーザーとチャットしたい場合は、私(id:5)と私の友人(id:6) )が一緒にチャットに参加している場合、どのようにクエリを実行することができますか?

ここでテスト
+1

ポストサンプルデータと予想される出力。 – GurV

+0

@ObsidianAgeこれに近づける方法は考えられません。私が考えることができる唯一の方法は最悪の練習です - すべてのユーザーのチャットを繰り返し、両方のユーザーがforeach内でforeachを通じて共通のチャットを持っているかどうかを確認します。私はこれにエレガントなアプローチが必要だと確信しています。単一のクエリを使用します。 – matt4692

+0

@GurV予想される出力は、ユーザー間の共通チャットIDになる可能性があります。 – matt4692

答えて

1
SELECT u1.chatId 
FROM 
    ChatParticipants u1, 
    ChatParticipants u2 
WHERE u1.userId = 5 
    AND u2.userId = 6 
    AND u1.chatId = u2.chatId 

http://sqlfiddle.com/#!9/6bc431/1

+0

まさに私が探していたものです!どうもありがとう! – matt4692

関連する問題