我试图建构上表示许多一对多的关系,三个表的查询:一个很多的具体的过滤一对多的关系
- 用户
- 组
- user_groups
我需要查询属于已定义的组数组成员的用户,但如果他们是任何其他组的成员,则不要将它们包括在结果中。
所以我想要只在“groupA”,“groupD”和“groupZ”中的用户,但是如果他们是“groupB”的成员,那么不要在查询结果中返回它们。
我知道这个部分:
SELECT user.name
FROM user
JOIN user_groups on user_groups.user_id = user.id
JOIN groups on user_groups.group_id = group.id
但我不知道怎么写查询返回我想确切的结果。我应该提到目标数据库是一个oracle数据库,如果这很重要的话。
我去阅读不同的需求 - 用户必须在一个,两个或三个组A,d和Z(不一定全部三个)。当然,这简化了查询。 – mathguy
@mathguy ..你可能是对的..我在等待op的澄清,因为这个问题并不完全清楚。 –