我有下表的值

CREATE TABLE #tmpEmployee(ID int, EmpName varchar(50), EmpBossID int)

insert into #tmpEmployee values ( 1, 'Abhijit', 2);
insert into #tmpEmployee values ( 2, 'Haris', 3);
insert into #tmpEmployee values ( 3, 'Sanal', 0);

现在我要结果成为跟随
ID  EmpName BossName
1   Abhijit Haris
2   Haris   Sanal

所以我写了下面的查询。
select E1.ID,E1.EmpName, E.EmpName as BossName from #tmpEmployee E inner join #tmpEmployee E1 on E1.EmpBossID=E.ID.

但是问题是第3名员工(Sanal)没有老板。
所以我想要这个确切的结果:
ID  EmpName BossName
1   Abhijit Haris
2   Haris   Sanal
3   Sanal   Null

我应该怎么办?

最佳答案

使用权利加入

 select E1.ID,E1.EmpName, E.EmpName as BossName from #tmpEmployee E right join #tmpEmployee E1 on E1.EmpBossID=E.ID

ID  EmpName BossName
1   Abhijit Haris
2   Haris   Sanal
3   Sanal   NULL

我觉得你还可以

关于sql - 编写自我联接查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17417592/

10-13 08:03
查看更多