sql - 两列处理相同的数据
问题描述
我的 SQL 查询有问题。
我有两个表 - 第一个有 ID 和人员 ID:
id | id_p | id_p2
1 | 1 | 2
2 | 2 | 3
...
在第二个中,我有人员的 ID 和他们的姓名
id_p | name
1 | John
2 | Alice
3 | Daniel
...
我需要什么 - 我需要获取一个 SQL 查询,它将返回给我的人名,但每个 id_p 都在不同的列中。所以我需要带有名字的 id_p 和带有名字的 id_p2 。这里的例子
id | id_p | id_p2 | name_p | name_p2
1 | 1 | 2 | John | Alice
2 | 2 | 3 | Alice | Daniel
...
我怎样才能做到这一点?非常感谢!
解决方案
你需要SELF JOIN
:
select t.id, p.name as FirstIdPerson, p2.name as SecondIdPerson
from table t inner join
person p
on p.id_p = t.id_p inner join
person p2
on p2.id_p = t.id_p2;
推荐阅读
- c# - c# SOAP web service 复杂类型
- gwt - 本地使用码头的 Gwt 项目致命错误
- javascript - 在图像 Javascript 上插入/嵌入按钮
- python - 理解函数的一些问题
- .net - 使用 Azure Function 保持用户会话活跃
- visual-studio-2017 - Visual Studio 2017 不在任务运行器资源管理器中显示 grunt 任务
- python - Jenkins 节点属性“用法”以及如何使用 python 更新
- javascript - 如何使用 lodash 从现有对象创建特定的新对象
- reactjs - 每次单击标记时,我的谷歌地图都会刷新
- c - 如何在c中对不同的int值调用不同的函数