Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment réunir les employés avec leurs managers

Il s'agit d'une auto-jointure classique, essayez ce qui suit :

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

Et si vous voulez inclure le président qui n'a pas de manager, alors au lieu d'un inner join utilise un externe join dans la syntaxe Oracle :

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

Ou en syntaxe SQL ANSI :

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