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.