JOIN en SQL est une clause utilisée pour fusionner des lignes de deux tables ou plus sur la base de colonnes ayant des valeurs apparentées. Son objectif principal est d'obtenir un ensemble de données complet et exhaustif. « Complet » signifie ici la disposition des données obtenue à partir de la combinaison des colonnes issues des relations entre les tables.
Pour répondre aux divers besoins de récupération de données, la commande JOIN est divisée en plusieurs types : OUTER JOIN, INNER JOIN, RIGHT JOIN et LEFT JOIN.
Différences entre les types de SQL JOIN
Voici une explication des différents types de clauses JOIN ainsi que des exemples de syntaxe pour vous aider à comprendre leurs différences :
1. FULL OUTER JOIN
L'outer join (ou Full Outer Join) retourne tous les enregistrements ou lignes de données, qu'ils aient une valeur correspondante (identique) ou non dans les deux tables fusionnées. S'il n'y a pas de correspondance entre les deux tables, la partie vide se verra automatiquement attribuer la valeur NULL dans le résultat de la jointure.
Syntaxe :
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
2. LEFT JOIN
Left Join est une opération qui retourne tous les enregistrements de la table de gauche (première table) parmi les deux tables fusionnées. Toutes les données de la table de gauche seront extraites et affichées, même si les valeurs de cette table ne correspondent à aucune donnée de la table de droite (deuxième table). Les données de la table de droite qui n'ont pas de correspondance seront remplacées par NULL.
Syntaxe :
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
3. RIGHT JOIN (Complément)
À l'opposé de Left Join, la clause Right Join retourne tous les enregistrements de la table de droite (deuxième table), ainsi que les données correspondantes de la table de gauche. S'il n'y a pas de données correspondantes dans la table de gauche, le résultat du côté gauche sera NULL.
Syntaxe :
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
4. INNER JOIN (Complément)
Inner Join est le type de clause le plus couramment utilisé. Contrairement à Outer, Inner Join fonctionne de manière plus stricte en ne retournant que les lignes dont les données correspondent (intersection) dans les deux tables fusionnées.
Syntaxe :
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Écrit par
Wilan
Contributeur permanent de Bali Island Tekno qui partage activement des connaissances sur la technologie, la programmation et le monde du génie logiciel.