sql - 使用重复的列名连接 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
解决方案
尝试以下操作:
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;
推荐阅读
- node.js - 无法在 Visual Studio Code 上为密码哈希函数安装 bcrypt.ts
- javascript - ReactDOM act() 函数使用 Enzyme 导致混淆
- google-maps - 谷歌地图中的信息窗口不加载
- python-3.x - 查找“与我共享”文件夹 ID(驱动器 ID)和文件 ID - OneDrive、Microsoft Graph、Python
- php - Laravel websockets导致python套接字错误
- c - MISRA C 指令 4.6
- python - Azure python sdk:如何在不暴露代码凭据的情况下向 Azure 进行身份验证?
- javascript - 启用和禁用字段
- excel - 如果列表中存在条目,则最后一行不正确/为空行
- r - 如何只计算一列中的某些值而其他值不计算?