查找正好包含两个给定子级的单亲id

jaxagkaj  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(345)

我有一个id为外键列的线程表,它将thread\u members表作为thread\u id。
线程到线程\u成员具有一对多关系。
如果给定的线程成员是5和55,我必须找到只包含5和55的线程,但是可以有许多包含5、55和其他成员的线程,但只有一个包含5和55。
如何在mysql中实现这一点。

jckbn6z7

jckbn6z71#

你可以用 HAVING 条款:

SELECT thread_id
FROM thread_members
GROUP BY thread_id
HAVING COUNT(*) = 2
AND    COUNT(CASE WHEN user_id IN (5, 55) THEN 1 END) = 2

上面返回的线程正好包含两个成员5和55。它假定您的数据不包含重复数据 thread_id, user_id 对。

相关问题