Expression d'une jointure externe
Syntaxe : Jointure externe, gauche ou droite
Pour exprimer une jointure externe on se base sur la syntaxe INNER JOIN en utilisant à la place OUTER JOIN, LEFT OUTER JOIN ou RIGHT OUTER JOIN.
Exemple : Jointure externe gauche
SELECT Num
FROM Avion LEFT OUTER JOIN Vol
ON Avion.Num=Vol.Num
Cette requête permet de sélectionner tous les avions, y compris ceux non affectés à un vol.
Remarque :
Remarquons que "Avion LEFT OUTER JOIN Vol" est équivalent à "Vol RIGHT OUTER JOIN Avion" en terme de résultat.
Intuitivement, on préfère utiliser la jointure gauche pour sélectionner tous les tuple du côté N d'une relation 1:N, même si il ne sont pas référencés ; et la jointure droite pour pour sélectionner tous les tuples d'une relation 0:N, y compris ceux qui ne font pas de référence. Cette approche revient à toujours garder à gauche de l'expression "JOIN" la relation "principale", i.e. celle dont on veut tous les tuples, même s'ils ne référencent pas (ou ne sont pas référencés par) la relation "secondaire".
Exemple :
Exemple :
Exemple :
Méthode : Trouver les enregistrements non joints
La jointure externe sert en particulier pour trouver les enregistrements d'une table qui ne sont pas référencés par une clé étrangère. Il suffit de sélectionner, après la jointure externe, tous les enregistrements pour lesquels la clé de la relation référençante est nulle, on obtient alors ceux de la relation référencée qui ne sont pas référencés.