我有一个如下所示的表结构:
Id Name Sal ManagerId
1 a 5000 2
2 b 7000 3
3 c 6000 1
我需要这样的输出
Id Name Sal Manager
1 a 5000 b
2 b 7000 c
3 c 6000 a
我该怎么做?
答案 0 :(得分:2)
您必须使用自我JOIN
将一个表链接到自身:
SELECT t1.Id, t1.Name, t1.Sal, t2.ManagerName AS Manager
FROM TableName t1 INNER JOIN TableName t2
ON t1.ManagerID = t2.Id
如果ManagerId可以为空,您可能需要使用OUTER JOIN
:
SELECT t1.Id, t1.Name, t1.Sal, COALESCE(t2.ManagerName, '<no manager>') AS Manager
FROM TableName t1 LEFT OUTER JOIN TableName t2
ON t1.ManagerID = t2.Id