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.