我有一个不知道怎么问正确的问题,所以我从 SQL 语句(Postgres)开始:
SELECT pc.person_id
FROM groups g
LEFT OUTER JOIN group_clubs gc ON (gc.group_id = g.id)
LEFT OUTER JOIN person_club pc ON (gc.club_id = pc.club_id)
WHERE g.id = 2
我所拥有的:一个具有俱乐部标准的组,用户必须加入。这分为groups
桌子、group_clubs
桌子和person_club
桌子
我想要什么:我想让所有俱乐部中的所有人都与这个团体联系起来。我得到了什么:我得到了至少在一个俱乐部中的所有人。
我被卡住了,不知道如何得到结果,只需要与结果相交,但我现在不知道该怎么做......?!?
编辑: 为了解释我在寻找什么,这里有一个同样的声明:
SELECT pc.person_id
FROM person_club pc
WHERE pc.club_id IN (
SELECT gc.club_id
FROM group_clubs gc
WHERE gc.group_id = 2
);
我想要的是:
SELECT pc.person_id
FROM person_club pc
WHERE pc.club_id IN ALL(
SELECT gc.club_id
FROM group_clubs gc
WHERE gc.group_id = 2
);
此人应在此声明列出的所有group_clubs 中!