我有一个id为外键列的线程表,它将thread\u members表作为thread\u id。线程到线程\u成员具有一对多关系。如果给定的线程成员是5和55,我必须找到只包含5和55的线程,但是可以有许多包含5、55和其他成员的线程,但只有一个包含5和55。如何在mysql中实现这一点。
91zkwejq1#
你可以用 HAVING 条款:
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 对。
thread_id, user_id
1条答案
按热度按时间91zkwejq1#
你可以用
HAVING
条款:上面返回的线程正好包含两个成员5和55。它假定您的数据不包含重复数据
thread_id, user_id
对。