【发布时间】:2019-02-18 19:05:57
【问题描述】:
有两个表,user 和 user_set。这两个表都使用列id 作为它们的主键。
user 具有列 user_set_id 作为外键来指示它属于哪个用户集。
user表:
id | user_set_id | name | active | no_in_set
------+--------------+----------+--------+------------
1 | 1 | Alice | t | 3
2 | 3 | Bob | f | 4
3 | 2 | Charlie | t | 3
4 | 2 | Daniel | f | 1
...
user_set表:
id | name
-----+--------
1 | set1
2 | set2
3 | set3
...
一个集合总是恰好有四个属于它的用户。我想找到满足以下条件的用户集:
- user1 和 user2 处于活动状态
- user3 和 user4 处于非活动状态
(用户编号由列user.no_in_set标识。)
对于满足这些条件的每个集合,我想检索 user1 的名称。
【问题讨论】:
-
我已经更正了示例表中的错字,谢谢。
-
“活跃”是指“包含”吗?我会澄清您的问题,例如:“我希望找到所有集合:A)同时包含用户 1 和用户 2,B)不包含用户 3 和 4。也令人困惑:“我想检索 user1 的名称”。 user1不是爱丽丝吗?什么意思?
标签: sql postgresql