SQL LEFT OUTER JOIN

Le mot clé LEFT JOIN renvoie tous les enregistrements de la table de gauche (table1) et les enregistrements correspondants de la table de droite (table2). Le résultat est NULL du côté droit, s’il n’y a pas de correspondance.

Syntaxe:

SELECT nom_colonne(s)
  FROM table1
  LEFT JOIN table2
   ON table1.nom_colonne = table2.nom_colonne;

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-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 qu’ils pourraient avoir passées.

SELECT Clients.Nom_Client, Commandes.Numero_Commande
  FROM Clients
  LEFT JOIN Commandes ON Clients.Numero_Client = Commandes.Numero_Client
  ORDER BY Clients.Nom_Client;
Explication:

Le mot-clé LEFT JOIN renvoie tous les enregistrements de la table de gauche (Clients), même s’il n’y a pas de correspondance dans la table de droite (Commandes).

Résultat:
Nom-ClientNuméro-Commande
Brian1002
Carmennul
Jack1004
Jancy1003
robert1001

Avez-vous remarqué le résultat des jointures externes GAUCHE et DROITE ? 
Le résultat est le même. Est-ce que tu sais pourquoi? parce que nous venons d’échanger la table dans l’instruction SQL.