How to get the employees with their managers

后端 未结 5 1447
生来不讨喜
生来不讨喜 2020-12-29 12:16

This is what I want the output to look like:

Employee   Emp# Manager Mgr# 
   BLAKE   7698 KING    7839 
   CLARK   7782 KING    7839 
   JONES   7566 KING           


        
5条回答
  •  时光取名叫无心
    2020-12-29 13:00

    This is a classic self-join, try the following:

    SELECT e.ename, e.empno, m.ename as manager, e.mgr
    FROM
        emp e, emp m
    WHERE e.mgr = m.empno
    

    And if you want to include the president which has no manager then instead of an inner join use an outer join in Oracle syntax:

    SELECT e.ename, e.empno, m.ename as manager, e.mgr
    FROM
        emp e, emp m
    WHERE e.mgr = m.empno(+)
    

    Or in ANSI SQL syntax:

    SELECT e.ename, e.empno, m.ename as manager, e.mgr
    FROM
        emp e
        LEFT OUTER JOIN emp m
            ON e.mgr = m.empno
    

提交回复
热议问题