Samedi 25 juin 2011 6 25 /06 /Juin /2011 17:03

 

Requête SQL JOINTURES EXTERNES FULL OUTER JOIN.

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);

Exemple de Syntaxe Requêtes FULL OUTER JOINS.

 
SELECT  t1.column, t2.column
FROM table1 t1
 [ FULL  [OUTER JOIN table2 t2 ON (t1.column_name = t2.column_name)]];

 

Exemple jointure externe FULL OUTER JOIN.

 
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
Par Daniel Roesch - Publié dans : JOINTURES SQL - SQL JOINS
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Rechercher Articles Oracle SQL sur ce Site.

Loading

À lire aussi…

Download PDF Oracle

Rechercher sur le site

Oracle 10G - DBA -

Syndication

  • Flux RSS des articles
Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés