我有一个非常基本的 mysql 表,称为成员资格,它跟踪哪些人属于哪些组。人们可以属于许多群体。
它包含 3 个字段:id、person_id、group_id
我需要选择所有 group_id 为“20”和“53”的 person_id。人们必须只属于这两个群体。
我有一个非常基本的 mysql 表,称为成员资格,它跟踪哪些人属于哪些组。人们可以属于许多群体。
它包含 3 个字段:id、person_id、group_id
我需要选择所有 group_id 为“20”和“53”的 person_id。人们必须只属于这两个群体。
SELECT DISTINCT a.person_id
FROM memberships a
JOIN memberships b
ON a.person_id = b.person_id
AND b.group_id = 53
LEFT JOIN memberships c
ON a.person_id = c.person_id
AND c.group_id NOT IN (20,53)
WHERE a.group_id = 20 AND c.person_id IS NULL;
尽管您也可以选择一种NOT EXISTS
格式。