【问题标题】:Which join or approach to use使用哪种连接或方法
【发布时间】:2020-04-05 17:52:52
【问题描述】:

我有两张桌子。第一个表包含各个团队的名称和团队 ID,即 PK。第二个表包含有关比赛的详细信息:homeTeamID、awayTeamID、结果。

不知何故,我需要将这两个表结合起来,其中包含主队和客队的名称(而不是 ID)以及比赛结果。

如何做到这一点? 第一个表如下所示:

<table><tbody><tr><th>TeamID</th><th>TeamName</th></tr><tr><td>1</td><td>Arsenal</td></tr><tr><td>2</td><td>Man. City</td></tr></tbody></table>

第二张表如下所示:

<table><tbody><tr><th>HomeTeamID</th><th>AwayTeamID</th><th>Result</th></tr><tr><td>1</td><td>2</td><td>1:0</td></tr></tbody></table>

结果表需要如下所示:

<table><tbody><tr><th>HomeTeam</th><th>AwayTeam</th><th>Result</th></tr><tr><td>Arsenal</td><td>Man. City</td><td>1:0</td></tr></tbody></table>

【问题讨论】:

  • 请添加更多详细信息,例如示例输入和所需输出作为从您的 IDE 中获取的文本,并在高亮(通过鼠标指针选择)相关部分后按 Ctrl+K 组合键进行格式化。
  • @BarbarosÖzhan 如何在问题中绘制表格?
  • 使用网络中的一些工具@Nick
  • @BarbarosÖzhan 使用表格进行了编辑

标签: sql oracle join select


【解决方案1】:

您通常会加入teams 表两次:一次用于获取主队的名称,另一次用于获取客队的名称:

select 
    th.name home_team
    ta.name away_team
    m.result
from matches m
inner join teams th on th.teamID = m.homeTeamID
inner join teams ta on ta.teamID = m.awayTeamID

【讨论】:

    猜你喜欢
    • 2013-01-08
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2020-11-16
    • 2011-01-22
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多