この問題はRelational Division
と呼ばれます 。
SELECT group_id
FROM stuff
WHERE member_id IN (11,22,33)
GROUP BY group_id
HAVING COUNT(*) = 3
member_id
の場合 すべてのgroup_id
で一意ではありません 、DISTINCT
が必要です 一意の値のみをカウントするため。
SELECT group_id
FROM stuff
WHERE member_id IN (11,22,33)
GROUP BY group_id
HAVING COUNT(DISTINCT member_id) = 3
このリンクのその他のバリエーション: