【发布时间】:2017-10-21 09:57:51
【问题描述】:
父母 (PARENT) 的孩子 (KID) 是团队 (TEAM) 成员 (MEMBERS)。父母也可能是团队管理员 (ADMIN)。请注意:
- 管理员不必在团队中有孩子;
- 团队中有孩子的父母不是团队管理员;
- 孩子可能在多个团队中。
给定一个 PARENT.id_parent,我如何选择链接到该父级的 TEAM.id_team 列表(管理员、只是父级或两者兼有)。每个 TEAM.id_team 必须是唯一的,即使父母在团队中有孩子并且是管理员。
以下为我提供了通过孩子链接到父母的团队:
SELECT DISTINCT TEAM. *
FROM TEAM
INNER JOIN MEMBERS ON MEMBERS.id_team = TEAM.id_team
INNER JOIN KID ON KID.id_kid = MEMBERS.id_kid
WHERE KID.id_parent = 1
这个给了我父母是管理员的团队:
SELECT DISTINCT TEAM . *
FROM TEAM
INNER JOIN ADMIN ON ADMIN.id_team = TEAM.id_team
WHERE ADMIN.id_parent = 1
但我不知道如何获得两者的联合(或加入?)。
【问题讨论】:
-
请添加您迄今为止尝试过的查询以及一些示例数据和预期结果。
-
问题已更新
-
您不需要在第二个查询中加入 Parent 表,因为 Admin 表本身包含相关的 Parent id。同样要合并两个结果,只需在两个查询之间使用 UNION。
-
PARENT 在两个查询中都加入了?我完全迷路了,我会休息一下...... :-)
-
如你所愿.....但我认为下面给出的答案应该有效。试一次。