【问题标题】:SQL Join across multiple columns跨多个列的 SQL 联接
【发布时间】:2021-02-26 00:21:20
【问题描述】:

我正在 SQLite 中创建一个数据库来记录比赛结果和 SQL 查询,然后显示数据。

我有一张用于赛车手的桌子和一张用于结果的桌子。

赛车手

racerID racerName
1 Mark
2 Simon
3 Geoff

结果

resultID 1st 2nd 3rd
1 1 2 3
2 2 3 1
3 1 3 2

如何在所有位置显示姓名而不是只显示他们的 ID?

resultID 1st 2nd 3rd
1 Mark Simon Geoff
2 Simon Geoff Mark
3 Mark Geoff Simon

我已经设法让它为第 1 列工作。

select Racers.racerName as "1st", Results."2nd",Results."3rd"
from Results
inner join Racers on Results."1st"=Racers.racerID;

但是当我尝试以类似的方式获取其他列时,我得到了一个错误。

select Racers.racerName as "1st", Racers.racerName as "2nd",Racers.racerName as "3rd"
from Results
inner join Racers on Results."1st"=Racers.racerID
inner join Racers on Results."2nd"=Racers.racerID
inner join Racers on Results."3rd"=Racers.racerID;

我确定我忽略了一些非常基本的东西,但不知道如何克服这个问题。

提前致谢。

【问题讨论】:

    标签: sql database sqlite


    【解决方案1】:

    您需要为每个表引用使用单独的别名:

    select r1.racerName as "1st", r2.racerName as "2nd", r3.racerName as "3rd"
    from Results r join
         Racers r1
         on r."1st" = r1.racerID join
         Racers r2 
         on r."2nd" = r2.racerID join
         Racers r3
         on r."3rd" = r3.racerID;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-22
      • 2014-11-10
      • 2014-12-29
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多