Apprenez à être maître de vos données ! Mis à jour le 29 juillet 2026
Jointures · 29 juillet 2026 · 8 min de lecture

Les jointures SQL expliquées simplement : INNER, LEFT, RIGHT et FULL JOIN

Dès qu'une base de données compte plus d'une table, il faut savoir les combiner. C'est le rôle des jointures (JOIN). Ce tutoriel couvre les quatre types de jointures les plus utilisés, avec des exemples que vous pouvez tester directement.

Les tables d'exemple

Pour illustrer chaque jointure, on utilise deux tables simples : clients et commandes.

idnom
1Amina
2Karim
3Julie
idclient_idmontant
101149.90
102112.00
10348.50

Remarquez que Julie (id 3) n'a aucune commande, et que la commande 103 appartient à un client_id 4 qui n'existe pas dans clients. C'est volontaire, pour bien voir la différence entre chaque jointure.

INNER JOIN : uniquement les correspondances

INNER JOIN ne retourne que les lignes où la condition de jointure trouve une correspondance dans les deux tables.

SELECT c.nom, co.montant
FROM clients c
INNER JOIN commandes co ON co.client_id = c.id;

Résultat : Amina apparaît deux fois (une par commande), Karim et Julie n'apparaissent pas car ils n'ont pas de commande correspondante des deux côtés.

LEFT JOIN : tout de la table de gauche

LEFT JOIN (ou LEFT OUTER JOIN) garde toutes les lignes de la table de gauche, même sans correspondance à droite. Les colonnes manquantes sont remplies avec NULL.

SELECT c.nom, co.montant
FROM clients c
LEFT JOIN commandes co ON co.client_id = c.id;

Résultat : Amina (x2), Karim avec montant = NULL, Julie avec montant = NULL. C'est la jointure la plus utilisée en pratique, notamment pour trouver les lignes "orphelines" (par exemple, les clients sans aucune commande) avec un WHERE co.id IS NULL.

RIGHT JOIN : tout de la table de droite

RIGHT JOIN fait l'inverse : il garde toutes les lignes de la table de droite.

SELECT c.nom, co.montant
FROM clients c
RIGHT JOIN commandes co ON co.client_id = c.id;

Résultat : Amina (x2), et la commande 103 apparaît avec nom = NULL puisqu'aucun client n'a l'id 4.

Astuce : en pratique, la plupart des développeurs préfèrent reformuler un RIGHT JOIN en LEFT JOIN en inversant l'ordre des tables. Cela rend les requêtes plus faciles à lire de gauche à droite.

FULL JOIN : tout, des deux côtés

FULL JOIN (ou FULL OUTER JOIN) combine LEFT et RIGHT : toutes les lignes des deux tables apparaissent, avec des NULL là où il n'y a pas de correspondance.

SELECT c.nom, co.montant
FROM clients c
FULL JOIN commandes co ON co.client_id = c.id;

Note : MySQL ne supporte pas FULL JOIN nativement ; il faut simuler ce comportement avec un UNION d'un LEFT JOIN et d'un RIGHT JOIN.

Résumé visuel

TypeCe qu'il retourne
INNER JOINUniquement les lignes qui correspondent des deux côtés
LEFT JOINTout à gauche + correspondances à droite (NULL sinon)
RIGHT JOINTout à droite + correspondances à gauche (NULL sinon)
FULL JOINTout des deux côtés, avec NULL là où ça ne correspond pas
Astuce performance : assurez-vous que les colonnes utilisées dans la condition ON sont indexées, surtout sur les grandes tables. Voir notre article sur les index SQL pour aller plus loin.
← Retour à l'accueil Article suivant : Comprendre les index SQL →
Publicité