导出列';从SQL中的匹配列中删除数据
所以我有一个表,有,员工编号,员工姓名,主管编号 我想运行一个查询,检索员工姓名、员工编号、主管姓名和主管编号。只有一名员工没有主管,这意味着必须显示空值。我该怎么做?我正在使用Oracle SQL Plus。我的尝试根本不起作用!任何帮助都将不胜感激导出列';从SQL中的匹配列中删除数据,sql,database,oracle,Sql,Database,Oracle,所以我有一个表,有,员工编号,员工姓名,主管编号 我想运行一个查询,检索员工姓名、员工编号、主管姓名和主管编号。只有一名员工没有主管,这意味着必须显示空值。我该怎么做?我正在使用Oracle SQL Plus。我的尝试根本不起作用!任何帮助都将不胜感激 SELECT ename Employee, empno Emp#, super Manager# FROM emp; 这让我得到了三个专栏,但老实说,我甚至不知道从哪里开始得到主管的名字 这是为了上大学,但我学习是为了考试,不是为了作业,所以
SELECT ename Employee, empno Emp#, super Manager#
FROM emp;
这让我得到了三个专栏,但老实说,我甚至不知道从哪里开始得到主管的名字
这是为了上大学,但我学习是为了考试,不是为了作业,所以这里没有作弊:) 假设
SupervisorNumber
是返回到Employee
表的外键关系(其中是主管记录的EmployeeNumber
),则需要使用外部联接
在这种情况下,您需要的是左
连接:
select
e.EmployeeName,
e.EmployeeNumber,
s.EmployeeName as SupervisorName
from Employee e
left join Employee s on s.EmployeeNumber = e.SupervisorNumber
如果员工没有主管,则以下操作应有效,并为空:
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
你需要向我们展示你的尝试。还有,这是学校用的吗?为了澄清我的理解,grunt和super只是为了区分员工和主管而使用的假名?然后您只检索了grunt数据,然后将这两个数据连接在一起,并说主管的内容是从grunt表派生的?谢谢你的帮助
empGrunt
和empsuber
是为查询中涉及的emp
表的两个不同实例提供的别名。这很有意义!谢谢你,再见!那么你通过join链接了员工编号和主管姓名?非常感谢