Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como obter os funcionários com seus gerentes


Esta é uma auto-junção clássica, tente o seguinte:
SELECT e.ename, e.empno, m.ename as manager, e.mgr
FROM
    emp e, emp m
WHERE e.mgr = m.empno

E se você quiser incluir o presidente que não tem gerente, em vez de um interno juntar use um externo join na sintaxe do Oracle:
SELECT e.ename, e.empno, m.ename as manager, e.mgr
FROM
    emp e, emp m
WHERE e.mgr = m.empno(+)

Ou na sintaxe 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