我有一个非常基本的mysql表,名为memberships,它跟踪哪些人属于哪些组。人们可以属于不同的群体。
包含id、person_id、group_id三个字段
我需要选择group_ids为'20‘和'53’的所有person_ids。这些人只能属于这两个组。
发布于 2012-06-21 01:20:10
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格式。
https://stackoverflow.com/questions/11124656
复制相似问题