我需要创建一个查询来显示员工姓名和号码以及他们的超级名字和超级号码。上市还应包括没有任何主管的员工。
Select e.ename,e.empno,super.ename,super from emp e;
我不知道如何打印出经理/主管的名字,我只需要。
答案 0 :(得分:1)
使用外部连接将表连接到自身:
select e.ename, e.empno, super.ename, super.empno
from emp e
left join emp super on super.empno = e.super_empno
left join
仍然会返回emp
中不具有超级定义的行。
由于OP的评论,这里是如何做到没有一个连接(使用讨厌的相关子查询):
select
ename,
empno,
(select super.ename from emp where empno = e.super_empno) as super_name,
super_empno
from emp e;