首页 > 解决方案 > 使用重复的列名连接 SQL 中的三个表

问题描述

我在 SQL 中有三个表,我需要将它们连接在一起,这是一个简化版本:

表 1 列

Person ID (pID)
Fav Soccer Team (favST)
Fav Soccer Player (favSP)

表 2 列

Person ID (pID) 
Fav Soccer Team (favST) 
Fav Soccer Player (favSP)

表 3 列

Person ID (person_ID)
Person Name (pName)

问题是每个人都可能出现在表1和表2中。例如,表1反映了2017年最喜欢的球队和球员,表2反映了2018年最喜欢的球队和球员。

我必须创建一个查询,将它们全部加入并显示

结果列

Person ID (pID) 
Person Name (pName)
Favourite Soccer Team (favST) 
Favourite Soccer Player (favSP)
Table1/Table2 <--- which table this row of data is from

标签: sql

解决方案


尝试以下操作:

Select
  Table3.person_ID,
  Table3.pName,
  X.favST,
  X.favSP,
  X.tname
From
  Table3
Left join
  (
  Select
    PID,
    FavST,
    FavSP,
    'Table1' as tname
   From
    Table1
  Union
  Select
    PID,
    FavST,
    FavSP,
    'Table2' as tname
   From
    Table2
  )X on x.pId = table3.person_ID;

推荐阅读