Le mot clé RIGHT JOIN renvoie tous les enregistrements de la table de droite (table2) et les enregistrements correspondants de la table de gauche (table1). Le résultat est NULL à partir du côté gauche, lorsqu’il n’y a pas de correspondance.
Syntaxe:
SELECT nom_colonne(s)
FROM table1
RIGHT 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 renverra tous les noms de clients et toutes les commandes qu’ils pourraient avoir passées :
SELECT Clients.Nom_Client, Commandes.Numero_Commande
FROM Commandes
LEFT JOIN Clients ON Commandes.Numero_Commande = Clients.Numero_Client;
ORDER BY Clients.Nom_Client;
Explication:
Le mot-clé RIGHT JOIN renvoie tous les enregistrements de la table de droite (Clients), même s’il n’y a aucune correspondance dans la table de gauche (Commandes).
Résultat:
Nom-Client | Numéro-Commande |
---|---|
Brian | 1002 |
Carmen | nul |
Jack | 1004 |
Jancy | 1003 |
robert | 1001 |
Avez-vous remarqué le résultat de la jointure externe DROITE et externe GAUCHE ?
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.