SQL 根据同一 table 中的 ID 获取列的语句
SQL statement to get column based on ID from same table
table是这样的:
ID
Name
SupervisorID
1
John
NULL
2
Michael
NULL
3
David
1
SupervisorID是ID的外键。因此,David 的 SupervisorID 为 1 指的是 John。
我想编写一个仅检索姓名和主管姓名(如果适用)的语句。所以结果集应该是这样的:
Name
Supervisor
John
NULL
Michael
NULL
David
John
看起来应该很简单,但我做不出来
谢谢!
试试这个查询:
select Name, Name as superior from tablename where tablename.ID==tablename.superiorID
简单地做一个self LEFT JOIN
:
select t1.name, t2.name
from tablename t1
left join tablename t2 on t2.ID = t1.SupervisorID
(也对 return 没有主管的人进行 LEFT JOIN。)
table是这样的:
ID | Name | SupervisorID |
---|---|---|
1 | John | NULL |
2 | Michael | NULL |
3 | David | 1 |
SupervisorID是ID的外键。因此,David 的 SupervisorID 为 1 指的是 John。
我想编写一个仅检索姓名和主管姓名(如果适用)的语句。所以结果集应该是这样的:
Name | Supervisor |
---|---|
John | NULL |
Michael | NULL |
David | John |
看起来应该很简单,但我做不出来
谢谢!
试试这个查询:
select Name, Name as superior from tablename where tablename.ID==tablename.superiorID
简单地做一个self LEFT JOIN
:
select t1.name, t2.name
from tablename t1
left join tablename t2 on t2.ID = t1.SupervisorID
(也对 return 没有主管的人进行 LEFT JOIN。)