C’est quoi un FULL OUTER JOIN. ? Comment ça marche une jointure externe. ?
● JOINTURES EXTERNES = FULL OUTER JOINS. Une jointure externe élargie le résultat d’une jointure simple
(INNER JOINS) et permet en plus d’extraire des enregistrements qui ne répondent pas aux critères de jointure.
Une jointure externe FULL renvoie toutes les lignes qui satisfont la condition de jointure et retourne également une partie de ces lignes de la table 1 pour laquelle aucune
des lignes de la table 2 ne satisfait la condition de jointure et vice versa.
RIGHT OUTER JOIN -UNION- LEFT OUTER JOIN = FULL OUTER JOIN.
Le sens de la jointure externe FULL de la clause OUTER JOIN ignore l'ordre des tables.
● FROM table1 t1 FULL OUTER JOIN table2 t2 ON (t1.column_name = t2.column_name);
● FROM table2 t2 FULL OUTER JOIN table1 t1 ON (t1.column_name = t2.column_name);
SELECT t1.column, t2.column FROM table1 t1 [ FULL [OUTER JOIN table2 t2 ON (t1.column_name = t2.column_name)]]; |
SQL> SELECT e.ename, e.job, e.deptno 2 ,d.loc, d.deptno "Dept" 3 FROM emp e FULL OUTER JOIN dept d 4 ON (e.deptno = d.deptno); ENAME JOB DEPTNO LOC Dept ---------- --------- ---------- ------------- ---------- SMITH CLERK 20 DALLAS 20 ALLEN SALESMAN 30 CHICAGO 30 WARD SALESMAN 30 CHICAGO 30 JONES MANAGER 20 DALLAS 20 MARTIN SALESMAN 30 CHICAGO 30 BLAKE MANAGER 30 CHICAGO 30 CLARK MANAGER 10 NEW YORK 10 SCOTT ANALYST 20 DALLAS 20 KING PRESIDENT 10 NEW YORK 10 TURNER SALESMAN 30 CHICAGO 30 ADAMS CLERK 20 DALLAS 20 JAMES CLERK 30 CHICAGO 30 FORD ANALYST 20 DALLAS 20 MILLER CLERK 10 NEW YORK 10 DAN DBA BOSTON 40 16 rows selected. SQL> SELECT e.ename, e.job, e.deptno 2 ,d.loc, d.deptno "Dept" 3 FROM emp e, dept d 4 WHERE e.deptno(+) = d.deptno 5 UNION 6 SELECT e.ename, e.job, e.deptno 7 ,d.loc, d.deptno "Dept" 8 FROM emp e, dept d 9 WHERE e.deptno = d.deptno(+); ENAME JOB DEPTNO LOC Dept ---------- --------- ---------- ------------- ---------- ADAMS CLERK 20 DALLAS 20 ALLEN SALESMAN 30 CHICAGO 30 BLAKE MANAGER 30 CHICAGO 30 CLARK MANAGER 10 NEW YORK 10 DAN DBA FORD ANALYST 20 DALLAS 20 JAMES CLERK 30 CHICAGO 30 JONES MANAGER 20 DALLAS 20 KING PRESIDENT 10 NEW YORK 10 MARTIN SALESMAN 30 CHICAGO 30 MILLER CLERK 10 NEW YORK 10 SCOTT ANALYST 20 DALLAS 20 SMITH CLERK 20 DALLAS 20 TURNER SALESMAN 30 CHICAGO 30 WARD SALESMAN 30 CHICAGO 30 BOSTON 40 16 rows selected. SQL> |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• Les types de JOINTURES dans ORACLE • Jointure SQL INNER JOINS ou EQUI JOINS • Jointure SQL SELF JOINS • Jointure SQL LEFT / RIGHT OUTER JOIN |