包含具有内部联接的特定列中包含空值的行

时间:2014-04-13 02:00:40

标签: sql oracle

此处的目标是返回每个员工的ID,名称和经理名称及ID。该表不包含经理名称,仅包含给定员工的经理ID。当前查询使用内部联接很有效,除了一个员工没有经理ID(他是老板),因此他的信息都没有出现。当前查询如下所示:

SELECT DISTINCT e.employee_id AS EMPLOYEE_ID, 
                e.FULL_NAME AS EMPLOYEE_NAME, 
                m.manager_ID AS REPORTS_TO, 
                m.FULL_NAME AS MANAGER_NAME
FROM EMPS e
INNER JOIN EMPS m ON e.manager_id = m.employee_id;

尽管他缺乏看似必要的领域,但我怎么能包括该员工的姓名和信息?感谢

1 个答案:

答案 0 :(得分:1)

如果您想在没有经理的情况下包含员工姓名,请执行左连接:

SELECT DISTINCT e.employee_id AS EMPLOYEE_ID, 
                e.FULL_NAME AS EMPLOYEE_NAME, 
                m.manager_ID AS REPORTS_TO, 
                m.FULL_NAME AS MANAGER_NAME
FROM EMPS e
LEFT JOIN EMPS m ON e.manager_id = m.employee_id;