La jointure droite SQL inclut toutes les lignes de la table de droite et celles qui correspondent de la gauche. Pour ce qui ne correspond pas depuis la droite, NULL est retourné dans les colonnes correspondantes.
C’est la différence essentielle entre une RIGHT JOIN SQL et une INNER JOIN. Là où une jointure interne ne renvoie que les lignes correspondant à la condition de jointure, dans une jointure externe droite, il est garanti que toutes les lignes des tables de droite sont incluses dans le résultat.
Voyez cette illustration:
Voyez les résultats pour Fred et remarquez qu’il n’y a pas de produit correspondant, il est NULL. De plus, le n’est pas inclus dans le résultat.
Un autre nom pour la jointure droite est la jointure externe droite.
La forme générale de la jointure droite est :
SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn
Notes :
- Dans cet exemple, table2 est la table de droite et table1 la gauche.
- S’il n’y a pas de correspondance entre les valeurs de commonColumn, table1.column1 renvoie NULL
SQL RIGHT JOIN Exemple
Toutes les personnes de la base de données AdventureWorks ne sont pas des employés. Répertorions chaque personne, et certaines de leurs données d’emploi, si elles existent. Pour ce faire, nous utiliserons un RIGHT JOIN.
N’oubliez pas qu’il s’agit d’une JOIN DROITE, car la table des personnes, qui possède chaque ligne que nous souhaitons retourner, se trouve du côté droit de l’opérateur JOIN.
Regardez les résultats et remarquez qu’il y a des NULL pour certaines personnes. C’est parce qu’il n’y a pas d’entrées correspondantes dans la table des employés. Le RIGHT JOIN fonctionne comme annoncé, retourner toutes les correspondances, et un NULL lorsqu’il n’y en a pas.
Points importants :
Lorsque vous travaillez avec des JOINTS DROITS, gardez à l’esprit que votre correspondance d’une table à une autre peut correspondre à plusieurs lignes. Ce qui signifie que votre résultat peut avoir plus de lignes dans le résultat que vous avez dans l’une ou l’autre table.
Lorsque les colonnes ne correspondent pas, la requête la ligne droite, et NULL pour les colonnes de la table gauche….