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-Commande | Numéro-Client | Date-Commande |
---|---|---|
1001 | 10 | 2020-09-08 |
1002 | 99 | 2020-09-01 |
1003 | 17 | 2020-08-25 |
1004 | 76 | 2020-09-19 |
1005 | 44 | 2020-09-25 |
Examinons les données du tableau “Clients” ci-dessous :
Numéro-Client | Nom-Client | Pays |
---|---|---|
76 | Jack | Amérique |
17 | Jancy | Allemagne |
20 | Carmen | Russie |
10 | robert | Inde |
99 | Brian | Chine |
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-Client | Numéro-Commande |
---|---|
Brian | 1002 |
Carmen | nul |
Jack | 1004 |
Jancy | 1003 |
robert | 1001 |
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.