SQL RIGHT OUTER JOIN

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-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 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-ClientNuméro-Commande
Brian1002
Carmennul
Jack1004
Jancy1003
robert1001

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.