Oracle
 sql >> Database >  >> RDS >> Oracle

Come ottenere i dipendenti con i loro manager

Questo è un classico self-join, prova quanto segue:

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

E se vuoi includere il presidente che non ha un manager, allora invece di un interno unisciti usa un esterno unisciti alla sintassi Oracle:

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

O nella sintassi ANSI SQL:

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