Combiner toutes les lignes des deux tables
Le FULL OUTER JOIN (ou FULL JOIN) combine les résultats de LEFT JOIN et RIGHT JOIN. Il retourne toutes les lignes des deux tables, qu'il y ait une correspondance ou non.
Les lignes sans correspondance auront des valeurs NULL pour les colonnes de l'autre table.
SELECT colonnes
FROM table1
FULL OUTER JOIN table2 ON table1.colonne = table2.colonne;
FULL JOIN est un raccourci de FULL OUTER JOIN.
FULL OUTER JOIN = LEFT JOIN + RIGHT JOIN :
SELECT e.nom, e.prenom, d.dept_nom
FROM EMPLOYES e
FULL OUTER JOIN DEPARTEMENTS d ON e.dept_id = d.dept_id;
Résultat :
FULL OUTER JOIN est utile pour :
-- Lignes sans correspondance à gauche
SELECT e.nom, d.dept_nom
FROM EMPLOYES e
FULL OUTER JOIN DEPARTEMENTS d ON e.dept_id = d.dept_id
WHERE e.employe_id IS NULL;
-- Lignes sans correspondance à droite
WHERE d.dept_id IS NULL;
-- Les deux
WHERE e.employe_id IS NULL OR d.dept_id IS NULL;
Toutes les lignes des deux tables
Trouver les employés sans département avec FULL OUTER JOIN
Trouver les départements vides avec FULL OUTER JOIN
Employés sans département OU départements sans employés
Départements et localisations (toutes les lignes)