Sobes.tech
Middle

Quels types de JOIN existent en SQL et quelles sont les différences entre LEFT JOIN, RIGHT JOIN et INNER JOIN?

sobes.tech IA

Réponse de l'IA

Il existe plusieurs types de JOIN en SQL qui permettent de combiner des lignes de deux tables selon une condition spécifique :

  • INNER JOIN — ne renvoie que les lignes ayant des correspondances dans les deux tables.
  • LEFT JOIN (LEFT OUTER JOIN) — renvoie toutes les lignes de la table de gauche et les lignes correspondantes de la droite. Si aucune correspondance, les champs de la table de droite seront NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN) — inversement, renvoie toutes les lignes de la table de droite et celles correspondantes de la gauche, avec NULL là où il n’y a pas de correspondance.

Exemple :

Tableau A :

id nom
1 Alice
2 Bob

Tableau B :

id ville
1 Londres
3 Berlin
  • INNER JOIN par id renverra uniquement id=1 (Alice et Londres).
  • LEFT JOIN renverra :
    • id=1 (Alice, Londres)
    • id=2 (Bob, NULL)
  • RIGHT JOIN renverra :
    • id=1 (Alice, Londres)
    • id=3 (NULL, Berlin)

Ainsi, LEFT et RIGHT JOIN conservent toutes les lignes d’une des tables, en les complétant avec des données de l’autre, tandis que INNER JOIN ne conserve que celles qui correspondent.