查找正好包含两个给定孩子的单亲ID

时间:2018-12-17 10:40:12

标签: mysql sql group-by relational-division

我有一个线程表,其ID是thread_members表的外键列作为thread_id。

线程到thread_members具有一对多关系。

如果给定的线程成员是5和55,我必须找到仅包含5和55的线程,但是可以有很多线程包含5,55和其他成员,但只有一个线程具有5和55。

如何在MySQL中实现这一目标。

1 个答案:

答案 0 :(得分:3)

您可以使用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对。

相关问题