此处的目标是返回每个员工的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;
尽管他缺乏看似必要的领域,但我怎么能包括该员工的姓名和信息?感谢
答案 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;