Sobes.tech
Junior

Quelles sont les différences entre LEFT JOIN et RIGHT JOIN en SQL?

sobes.tech IA

Réponse de l'IA

LEFT JOIN renvoie toutes les lignes de la table de gauche (première) et les lignes correspondantes de la table de droite (deuxième). Si aucune correspondance n’est trouvée dans la table de droite, le résultat contient NULL pour les colonnes de la table de droite.

RIGHT JOIN renvoie toutes les lignes de la table de droite (deuxième) et les lignes correspondantes de la table de gauche (première). Si aucune correspondance n’est trouvée dans la table de gauche, le résultat contient NULL pour les colonnes de la table de gauche.

La différence principale réside dans la table considérée comme "complète", c’est-à-dire celle dont toutes les lignes seront retournées indépendamment de la présence de correspondances dans l’autre table.

Exemple en SQL :

Table TableA :

ID ValeurA
1 A1
2 A2
3 A3

Table TableB :

ID ValeurB
2 B2
3 B3
4 B4

LEFT JOIN :

SELECT *
FROM TableA
LEFT JOIN TableB ON TableA.ID = TableB.ID;

Résultat du LEFT JOIN :

ID (de TableA) ValeurA ID (de TableB) ValeurB
1 A1 NULL NULL
2 A2 2 B2
3 A3 3 B3

RIGHT JOIN :

SELECT *
FROM TableA
RIGHT JOIN TableB ON TableA.ID = TableB.ID;

Résultat du RIGHT JOIN :

ID (de TableA) ValeurA ID (de TableB) ValeurB
2 A2 2 B2
3 A3 3 B3
NULL NULL 4 B4

LEFT JOIN et RIGHT JOIN sont souvent interchangeables en changeant l’ordre des tables dans la requête : A LEFT JOIN B est équivalent à B RIGHT JOIN A.