0
我有一個非常基本的mysql表稱爲memberships,它跟蹤哪些人屬於哪個組。人們可以屬於很多羣體。看似簡單的mysql查詢,證明是艱難的
它包含3個字段:ID,爲person_id,GROUP_ID
,我需要選擇所有具有 '20' 和 '53' 的group_ids的person_ids。人們只能屬於這兩個羣體。
我有一個非常基本的mysql表稱爲memberships,它跟蹤哪些人屬於哪個組。人們可以屬於很多羣體。看似簡單的mysql查詢,證明是艱難的
它包含3個字段:ID,爲person_id,GROUP_ID
,我需要選擇所有具有 '20' 和 '53' 的group_ids的person_ids。人們只能屬於這兩個羣體。
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
格式。
很好,謝謝! –