SQL FULL OUTER JOIN

Le mot-clé FULL OUTER JOIN renvoie tous les enregistrements lorsqu’il existe une correspondance dans les enregistrements de table de gauche (table1) ou de droite (table2). FULL OUTER JOIN et FULL JOIN sont identiques.

FULL OUTER JOIN peut potentiellement renvoyer de très grands ensembles de résultats. Parce que FULL OUTER JOIN renvoie tous les enregistrements correspondants des deux tables, que l’autre table corresponde ou non.

Syntaxe:

SELECT nom_colonne(s)
  FROM table1
  FULL OUTER JOIN table2
  ON table1.nom_colonne = table2.nom_colonne
  WHERE condition;

Base de données DB2 :

Examinons les données du tableau “Commandes” ci-dessous :

Numéro-CommandeNuméro-ClientDate-Commande
1001102020-09-08
1002992020-09-01
1003172020-08-25
1004762020-09-19
1005442020-09-25

Examinons les données du tableau “Clients” ci-dessous :

Numéro-ClientNom-ClientPays
76JackAmérique
17JancyAllemagne
20CarmenRussie
10robertInde
99BrianChine

Notez que la colonne « Numéro de client » dans la table « Commandes » fait référence au « Numéro de client » dans la table « Clients ». La relation entre les deux tables ci-dessus est la colonne “Numéro-Client”.

Voyons comment créer une instruction SQL qui sélectionnera tous les clients et toutes les commandes :

SELECT Clients.Nom_Client, Commandes.Numero_Commande
  FROM Clients
  FULL OUTER JOIN Commandes ON Clients.Numero_Client = Commandes.Numero_Client
  ORDER BY Clients.Nom_Client;
Résultat:
Nom-ClientNuméro-Commande
Brian1002
Carmennull
Jack1004
Jancy1003
robert1001
null1005