我有如下表从业人员管理者报告 - SQL服务器
empid empname managerID
1 A NULL
2 B 1
3 C 1
4 D 2
的DDL是在
Declare @t table(empid int, empname varchar(20), managerID int)
insert into @t
select 1,'A',null union all
select 2,'B',1 union all
select 3,'C',1 union all
select 4,'D',2
我所要做的就是准备一个报告,该报告将显示哪些员工报告哪位经理。
我一直在使用
select EmpName = e.empname, ManagerName = m.empname
from @t e
left join
@t m
on e.managerID = m.empid
soved它和期望的输出是
EmpName ManagerName
A NULL
B A
C A
D B
什么是这样做的其他方式?
正确的结果,但一般来说,你应该加入并尽量避免子查询 – niktrs
@niktrs,我同意。我写了关于OP的最佳解决方案的意见。 –