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。)