-1

私は2つのテーブルを持っています:

|  conversations  |      |    conversation_participants   |
-------------------      ----------------------------------
| id | project_id |      | id | conversation_id | user_id |
-------------------      ----------------------------------
  1  | 1                   1  | 1               | 1
  2  | 1                   2  | 1               | 2
                           3  | 2               | 1
                           4  | 2               | 3 

特定のプロジェクト ID に対して 2 人のユーザーが共通に持っている会話 ID を選択する必要があります

したがって、この例では:

  • user_id 1 と user_id 2 が project_id 1 に対して共通に持っている会話 ID: 1
  • user_id 1 と user_id 3 が project_id 1 に対して共通に持つ会話 ID: 2

user_id a、user_id b、project_id を指定して会話 ID を取得できるクエリが必要です。

私は次のようなものを試しました:

SELECT
c.id
FROM conversations c
JOIN conversation_participants p ON p.conversation_id = c.id
WHERE (p.user_id = ? AND c.project_id = ?)
OR (p.user_id = ? AND c.project_id = ?)

もちろん、これは複数の行を返しますが、場合によっては異なる会話IDを持つレコードが返されるため、おそらく間違っています...

助けてください!ありがとう!。

4

1 に答える 1