我有两张桌子:
| 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 选择两个用户共有的对话 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 的记录......
帮助表示赞赏!谢谢!。