当前位置: 首页 > 面试题库 >

如何基于多个表选择SQL结果

陆阳曜
2023-03-14
问题内容

我需要根据其他几个表中的某些匹配值从一个表中选择结果。我有以下表格:

person: id, firstname, lastname
team: id, teamname
player: id, person_id(FK), team_id(FK)
coach: id, person_id(FK), team_id(FK)

我需要返回每个团队的所有教练和球员的姓名。我只使用过内部联接,似乎无法在此处使用那些内部联接,所以知道如何执行此操作吗?


问题答案:

这将为您提供教练:

SELECT team.Teamname, person.Firstname, person.Lastname
FROM person
JOIN coach ON person.id = coach.person_id
JOIN team  ON coach.team_id = team.id

这将为您提供球员:

SELECT team.Teamname, person.Firstname, person.Lastname
FROM person
JOIN player ON person.id = player.person_id
JOIN team  ON player.team_id = team.id

因此,非优雅,简单的答案就是将所有内容与一起扔掉UNION



 类似资料:
  • 我试图为一个问题找到一个解决方案,在这个问题上,我需要根据多个标准来细化结果。我有多个选择标准: 水果-苹果橙子葡萄 蔬菜-番茄土豆西兰花 坚果-核桃花生杏仁 谷物-玉米小麦大米 香料-肉桂姜椒 用户只能从每个组中选择一个标准,例如,您可以选择苹果,但不能选择橘子或葡萄。参见jsfiddle。 然后我有多个篮子,里面有不同的物品。 但问题是,这些结果必须基于多个标准进行精炼。例如,我选择了苹果,然

  • 问题内容: 我有三个SQL选择,需要将它们的结果加在一起。这三个中的两个使用相当复杂的联接。 我需要的是所有三个值的总和。 。无论如何,是否可以在单个语句中执行此操作? 问题答案: 你可以的。 请勿使用,因为它会忽略重复的值(会导致)。

  • 我有一个样式规则,当一个标记有两个类时,我想应用于它。在没有JavaScript的情况下,有什么方法可以执行此操作吗?换句话说: 只有在同时应用了和类时,我才要应用我的样式规则。

  • 问题内容: 有没有比以下更有效的方法: 问题答案: 在查询中使用PARTITION(partitionN)语法应该非常少见。 通常,您只想为分区键指定值,并允许Oracle执行分区消除。例如,如果您的表每天根据TRANSACTION_DATE进行分区 将从今天的分区,昨天的分区和前一天的分区中选择所有数据。

  • 我认为这不会太复杂而无法解释,但肯定会很复杂,无法让它发挥作用。 首先,我有两个关于用户评论的表格,每个部分(论坛、文章等)一个表格,如下所示: site_用户(id、用户名等)[保存用户信息的表] site_articles_comments(id,user_id,注释,...)[其中user_id=site_users.id] site_forum_comments(id,user_id,注释

  • 我有两个表和 names表有以下列表: -男性姓名从nameID 1到nameID 10 -女性姓名从nameID 11到nameID 21 -两者都从nameID 23到nameID 31 性别表有三个属性: -女性 -男性 -两者 我正在使用引导选择选项,我想显示从nameID11到nameid21的名称,如果用户从gender选择选项中选择女性,等等,这是可能的吗?我看到其他帖子,我注意到他