所以我有一张表,包括员工编号,员工姓名,主管编号。
我想运行一个查询,该查询将检索员工姓名,员工编号,主管姓名和主管人员编号。只有一名员工没有主管意味着必须显示空值。我该怎么做?我正在使用Oracle SQL Plus。我的尝试根本没用!任何帮助将不胜感激。
SELECT ename Employee, empno Emp#, super Manager#
FROM emp;
这给了我三个栏目,但说实话,我甚至不知道从哪里开始获得主管的名字。
这是为了大学,但我正在学习考试,这不是作业,所以这里没有作弊:)。
答案 0 :(得分:1)
假设SupervisorNumber
是返回Employee
表的外键关系(它是主管记录的EmployeeNumber
),那么您需要使用外连接。
在这种情况下,您需要的是left
加入:
select
e.EmployeeName,
e.EmployeeNumber,
s.EmployeeName as SupervisorName
from Employee e
left join Employee s on s.EmployeeNumber = e.SupervisorNumber
答案 1 :(得分:1)
以下内容应该有效,如果员工没有主管,则为空:
SELECT empGrunt.ename Employee
, empGrunt.empno EmpNum
, empSuper.ename SupervisorName
, empSuper.empno SupervisorName
FROM emp empGrunt LEFT OUTER JOIN emp empSuper
ON empGrunt.super = empSuper.empno