首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL -连接的连接/连接的联合

SQL -连接的连接/连接的联合
EN

Stack Overflow用户
提问于 2017-10-21 09:57:51
回答 1查看 52关注 0票数 1

考虑以下表示体育俱乐部的SQL数据库体系结构:

父母(父母)有作为团队成员(成员)的孩子(孩子)。家长也可能是团队管理员(管理员)。请注意:

  • 管理人员不需要在团队中有孩子;
  • 团队中有孩子的父母不需要团队管理员;
  • 孩子们可能在几个团队里。

给定一个PARENT.id_parent,如何选择链接到此父级的TEAM.id_team列表(管理员,只是父级或两者兼而有之)。每个TEAM.id_team必须是唯一的,即使父级在团队中有子级并且是管理员。

以下是通过孩子与父母联系的团队:

代码语言:javascript
复制
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

这篇文章给出了父母是管理员的团队:

代码语言:javascript
复制
SELECT DISTINCT TEAM . * 
FROM TEAM
INNER JOIN ADMIN ON ADMIN.id_team = TEAM.id_team
WHERE ADMIN.id_parent = 1

但我不知道怎样才能得到工会(或加入?)两者都是。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-21 10:09:07

这可能不是一种优化的方法(要做到这一点,我需要知道数据库中的表大小和其他细微之处)。但是我认为这会给你所需要的(因为你不需要团队名称)

代码语言:javascript
复制
select distinct a.parent_id, b.id_team
from parent as a
left join admin as b
  on a.parent_id = b.parent_id

UNION --this will remove duplicates

select distinct a.parent_id, c.id_team
from parent as a
left join kid as b
  on a.parent_id = b.parent_id
left join members as c
  on b.id_kid = c.id_kid
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46862076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档