DataSuits

Jointures SQL (JOIN) : Le Guide Complet 2026

Blog
Jointures SQL (JOIN) : Le Guide Complet 2026
Emoji de visage masculin avec lunettes rondes, clin d'œil et langue tirée sur fond beige.
Emoji 3D d'un homme souriant avec une barbe noire et une coiffure en dreadlocks sur fond violet clair.
Emoji féminin avec peau brune, cheveux tressés noirs, boucles d’oreilles dorées, nez percé, clin d'œil et langue tirée.
Visage animé avec cheveux violets, sourire les yeux fermés et main montrant les doigts croisés.

Candidater à l’une de nos formations DataSuits

Remplissez ce court formulaire pour candidater à la formation de votre choix. Notre équipe pédagogique vous contactera rapidement pour échanger sur votre parcours et vous accompagner dans la suite de votre inscription.

SW
Samy Wahbi Formateur Data · Responsable parcours Data Analyst
Mis à jour le 27 juin 2026 · 13 min de lecture

Vous avez deux tableaux sous les yeux : la liste de vos clients d'un côté, celle de leurs commandes de l'autre. Et la question qui revient toujours : comment savoir, d'un seul coup d'œil, quel client a commandé quoi ? La réponse tient en un mot, et c'est sans doute le concept le plus important de tout le SQL : la jointure.

Si vous débutez en SQL, les jointures sont l'étape qui fait peur. C'est normal : c'est là que tout se joue, et c'est aussi là que beaucoup décrochent. Pourtant, une fois le bon schéma mental en tête, c'est d'une logique limpide. Mon objectif dans ce guide : que vous ressortiez en ayant vraiment compris, pas juste mémorisé.

Je forme des Data Analysts chez DataSuits, organisme de formation Qualiopi certifié par l'Université Paris 1 Panthéon-Sorbonne, et les jointures, je les explique à longueur de journée. On va y aller pas à pas : ce qu'est une jointure, comment SQL relie deux tables, les 4 types de jointures avec des exemples concrets (et leur résultat affiché), un schéma visuel pour tout retenir, et les erreurs classiques à éviter.

Le verdict en 2 phrases

Une jointure SQL (JOIN) permet de combiner les lignes de deux tables (ou plus) en s'appuyant sur une colonne qu'elles ont en commun, appelée la clé. Il existe quatre jointures principales : INNER JOIN (uniquement les correspondances), LEFT JOIN (tout à gauche + les correspondances), RIGHT JOIN (l'inverse) et FULL JOIN (tout des deux côtés). Maîtriser les jointures, c'est franchir l'étape qui sépare un débutant d'un vrai Data Analyst.

★ À retenir en 5 points

  • Une jointure combine deux tables grâce à une colonne commune (la clé), reliée avec le mot-clé ON.
  • INNER JOIN ne garde que les lignes qui ont une correspondance dans les deux tables.
  • LEFT JOIN garde TOUTES les lignes de la table de gauche, même sans correspondance (avec des NULL).
  • Oublier la condition ON est l'erreur n°1 : elle crée un « produit cartésien » qui explose le nombre de lignes.
  • Les jointures sont au cœur de la formation Data Analyst & IA de DataSuits.
4Types de jointures à connaîtreINNER, LEFT, RIGHT, FULL
1974Année de création du SQLToujours incontournable
1Clé commune suffit à relier 2 tablesLe mot-clé ON
5,0/5Note Google DataSuits110 avis vérifiés

Le concept

Une jointure SQL, c'est quoi au juste ?

Commençons par le commencement. Dans une base de données, l'information n'est jamais entassée dans un seul grand tableau. Elle est rangée dans plusieurs tables séparées, chacune sur un sujet précis. Une table pour les clients, une autre pour les commandes, une autre pour les produits. C'est plus propre et plus efficace.

Le problème, c'est que les vraies questions touchent souvent plusieurs tables à la fois. « Quels clients ont passé une commande ce mois-ci ? » mélange la table des clients et celle des commandes. C'est là qu'intervient la jointure : elle va rassembler temporairement les informations de ces tables pour répondre à votre question.

L'image que j'utilise toujours en cours : imaginez deux listes papier. Sur la première, les noms de vos clients avec un numéro. Sur la seconde, des commandes, chacune portant le numéro du client qui l'a passée. Joindre, c'est poser les deux listes côte à côte et tracer un trait entre chaque commande et le bon client, grâce au numéro qu'elles partagent. SQL fait exactement ça, en une ligne.

✅ Le bon réflexe : dès que votre question concerne des informations rangées dans deux endroits différents (les clients ET leurs commandes), c'est le signal qu'il vous faut une jointure. Apprenez à repérer ce moment, et la moitié du travail est déjà faite.

Le mécanisme

La clé : comment SQL relie deux tables

Pour relier deux tables, SQL a besoin d'un point commun : une colonne présente dans les deux, qui sert de pont. On l'appelle la clé. Prenons nos deux tables d'exemple, qu'on va garder tout au long de l'article.

Table : clients
id
nom
1
Camille
2
Yanis
3
Inès
Table : commandes
id
client_id
produit
101
1
Clavier
102
1
Souris
103
2
Écran

Regardez bien : dans la table commandes, la colonne client_id contient le numéro du client. C'est le pont. Le client_id de la commande correspond à l'id de la table clients. Cette colonne qui pointe vers une autre table, on l'appelle une clé étrangère, et l'id unique de chaque client une clé primaire. Pas besoin de retenir le vocabulaire par cœur, retenez l'idée : une colonne commune relie les deux tables.

En SQL, on indique ce pont avec le mot-clé ON. La phrase « relie chaque commande à son client là où le client_id de la commande est égal à l'id du client » s'écrit : ON clients.id = commandes.client_id. C'est le cœur de toute jointure. Une fois ce ON compris, le reste n'est que des variantes.


Jointure n°1

INNER JOIN : les correspondances uniquement

L'INNER JOIN (jointure interne) est la plus courante. Sa règle est simple : elle ne garde que les lignes qui ont une correspondance des deux côtés. Un client sans commande ? Il disparaît. Une commande sans client ? Pareil. On ne garde que ce qui « matche ».

Reprenons nos tables. On veut afficher le nom de chaque client à côté du produit qu'il a commandé. Voici la requête :

SQL — INNER JOIN
SELECT clients.nom, commandes.produit
FROM clients
INNER JOIN commandes ON clients.id = commandes.client_id;

Et voici ce que SQL renvoie. Lisez ligne par ligne :

Résultat
nom
produit
Camille
Clavier
Camille
Souris
Yanis
Écran

Trois lignes, et un détail qui en dit long. Camille apparaît deux fois (elle a passé deux commandes), c'est normal. Mais surtout : Inès a disparu. Pourquoi ? Parce qu'elle n'a passé aucune commande. Comme l'INNER JOIN exige une correspondance des deux côtés, elle est exclue. Retenez ça : l'INNER JOIN, c'est l'intersection, le « commun » aux deux tables.

💡 À quoi ça sert concrètement : l'INNER JOIN répond aux questions du type « montre-moi uniquement les clients qui ont réellement commandé ». C'est la jointure que vous utiliserez le plus souvent. Quand vous ne savez pas laquelle choisir, commencez par celle-là.

Jointure n°2

LEFT JOIN : tout garder à gauche

Maintenant, changeons de besoin. Et si je voulais la liste de tous mes clients, y compris ceux qui n'ont rien commandé ? L'INNER JOIN ne convient plus, puisqu'il fait disparaître Inès. Il me faut le LEFT JOIN (jointure gauche).

Sa règle : il garde toutes les lignes de la table de gauche (celle écrite après FROM), et y accroche les correspondances de la table de droite quand il y en a. Quand il n'y en a pas, il remplit le vide avec NULL (une case vide, « rien »). On change juste un mot dans la requête :

SQL — LEFT JOIN
SELECT clients.nom, commandes.produit
FROM clients
LEFT JOIN commandes ON clients.id = commandes.client_id;

Le résultat change. Regardez la dernière ligne :

Résultat
nom
produit
Camille
Clavier
Camille
Souris
Yanis
Écran
Inès
NULL

Cette fois, Inès est bien là. Comme elle n'a pas de commande, la colonne produit affiche NULL. C'est toute la puissance du LEFT JOIN : il ne perd personne du côté gauche. C'est aussi la jointure idéale pour répondre à « quels clients n'ont JAMAIS commandé ? » : il suffit ensuite de garder les lignes où le produit est NULL.

✅ Le truc pour ne plus confondre : « LEFT » = la table de gauche est prioritaire, on garde tout le monde de ce côté. Pensez « je pars de mes clients (à gauche) et je vais chercher leurs commandes (à droite) si elles existent ». Le sens de lecture, de gauche à droite, vous donne la logique.

Jointures n°3 et 4

Les deux dernières sont faciles, maintenant que vous tenez le LEFT JOIN. Ce sont les mêmes idées, vues sous un autre angle.

RIGHT JOIN : le miroir du LEFT

Le RIGHT JOIN fait exactement l'inverse du LEFT : il garde toutes les lignes de la table de droite, et accroche les correspondances de gauche. En pratique, on l'utilise rarement, parce qu'on peut toujours réécrire un RIGHT JOIN en LEFT JOIN en inversant l'ordre des tables. La plupart des Data Analysts ne jurent que par le LEFT JOIN, plus naturel à lire.

FULL JOIN : on garde tout le monde

Le FULL JOIN (ou FULL OUTER JOIN) combine les deux : il garde toutes les lignes des deux tables, qu'elles aient une correspondance ou non. Les trous sont remplis par des NULL des deux côtés. C'est utile pour comparer deux tables et repérer ce qui existe d'un côté mais pas de l'autre.

SQL — FULL JOIN
SELECT clients.nom, commandes.produit
FROM clients
FULL JOIN commandes ON clients.id = commandes.client_id;
⚠️ Bon à savoir : tous les systèmes de bases de données ne gèrent pas le FULL JOIN de la même façon. MySQL, par exemple, ne le supporte pas directement (on le simule autrement). PostgreSQL et SQL Server, eux, l'acceptent sans souci. Si votre FULL JOIN renvoie une erreur, ce n'est pas vous : c'est votre base qui ne le connaît pas.

La mémo visuelle

Le schéma visuel des 4 jointures

Voici l'image qui vaut mille mots, et que tous les Data Analysts ont en tête. Chaque jointure correspond à une zone de deux cercles qui se chevauchent : le cercle de gauche, c'est la table de gauche ; celui de droite, la table de droite ; et la zone commune au milieu, ce sont les correspondances. La partie colorée est ce que la jointure garde.

INNER JOIN

Seulement le centre : les correspondances communes.

LEFT JOIN

Tout le cercle gauche + le centre.

RIGHT JOIN

Tout le cercle droit + le centre.

FULL JOIN

Les deux cercles en entier, tout le monde.

Gardez ce schéma sous le coude. Quand vous hésitez sur la jointure à utiliser, posez-vous la question : « de quelle zone ai-je besoin ? » Le centre seul ? INNER. Tout un côté ? LEFT ou RIGHT. Tout ? FULL. Vous venez de résumer 90 % des jointures que vous écrirez dans votre carrière.

📚 Apprenez le SQL et la data de A à Z

Les jointures ne sont qu'un début. Notre formation Data Analyst & IA vous forme au SQL, à Python, Power BI et l'IA sur des données réelles d'entreprise. Certificat de l'Université Paris 1 Panthéon-Sorbonne, mentors disponibles 7j/7.


Les pièges

Les erreurs de débutant à éviter

Tout le monde fait ces erreurs au début, moi le premier. Les connaître à l'avance vous fera gagner des heures de galère. Voici les trois plus fréquentes que je vois en formation.

1. Oublier la condition ON

C'est l'erreur reine. Si vous écrivez une jointure sans préciser ON, SQL ne sait pas comment relier les tables, alors il associe chaque ligne de la première avec chaque ligne de la seconde. Résultat : 3 clients × 3 commandes = 9 lignes qui n'ont aucun sens. On appelle ça un produit cartésien. Si votre résultat a beaucoup trop de lignes, vérifiez votre ON en premier.

2. Confondre la condition dans ON et dans WHERE

Sur un LEFT JOIN, attention : mettre un filtre sur la table de droite dans le WHERE peut, sans le vouloir, transformer votre LEFT JOIN en INNER JOIN (les NULL sont alors éliminés). Si vous voulez filtrer la table de droite tout en gardant tout le côté gauche, placez la condition dans le ON, pas dans le WHERE. C'est subtil, mais ça fait toute la différence.

3. Oublier de préciser la table pour les colonnes ambiguës

Si une colonne porte le même nom dans les deux tables (par exemple id), SQL ne sait pas de laquelle vous parlez et renvoie une erreur d'ambiguïté. La solution : préfixez toujours par le nom de la table, comme clients.id. Encore mieux, utilisez des alias courts pour alléger l'écriture :

SQL — avec alias (bonne pratique)
SELECT c.nom, o.produit
FROM clients AS c
LEFT JOIN commandes AS o ON c.id = o.client_id;

Ici, c remplace clients et o remplace commandes. C'est plus court, plus lisible, et c'est ce que font tous les professionnels. Prenez cette habitude dès maintenant.


La suite

S'entraîner et aller plus loin

La théorie, c'est bien, mais les jointures se comprennent vraiment en pratiquant. Voici comment progresser efficacement à partir d'ici.

Pratiquez sur de vraies données

Reprenez nos deux tables, créez-les dans un outil gratuit (DB Fiddle, SQLite en ligne) et testez chaque jointure pour voir le résultat changer sous vos yeux. C'est en modifiant les données et en observant que le déclic se produit. Ajoutez un client, une commande, et regardez comment chaque jointure réagit.

Enchaînez plusieurs jointures

Dans la vraie vie, on joint souvent trois tables ou plus (clients, commandes, produits). Une fois les bases acquises, c'est juste un enchaînement de jointures, une par une. Si vous tenez le principe sur deux tables, vous tenez tout le reste. Pour réviser les fondations, notre guide complet pour maîtriser le SQL et notre formation SQL reprennent tout depuis le début.

Faites-en une vraie compétence métier

Le SQL, et les jointures en particulier, sont la compétence socle du Data Analyst. Aucune analyse sérieuse ne s'en passe. Pour transformer ces bases en un véritable métier, notre formation Data Analyst & IA vous forme au SQL, à Python, Power BI et l'IA, sur des projets réels d'entreprise, avec un certificat de l'Université Paris 1 Panthéon-Sorbonne, des mentors 7j/7 et un accompagnement carrière. Pour découvrir d'autres tutoriels, parcourez aussi notre blog.

🎯 Devenez Data Analyst en 2026

En 20 minutes avec un conseiller, vous validez si le métier de Data Analyst vous correspond, vous calculez votre financement (CPF, France Travail, OPCO) et vous repartez avec un plan clair. Service gratuit, sans engagement.


Questions fréquentes

Une jointure SQL (JOIN) est une opération qui combine les lignes de deux tables (ou plus) en s'appuyant sur une colonne qu'elles ont en commun, appelée la clé. Elle permet de répondre à des questions qui concernent plusieurs tables à la fois, comme « quel client a commandé quel produit ». La condition de liaison s'écrit avec le mot-clé ON. C'est l'un des concepts les plus importants du SQL et une compétence indispensable pour tout Data Analyst.
L'INNER JOIN ne garde que les lignes ayant une correspondance dans les deux tables : un client sans commande est exclu. Le LEFT JOIN, lui, garde toutes les lignes de la table de gauche, même sans correspondance à droite (les cases vides sont remplies par NULL). En résumé : utilisez INNER JOIN pour ne voir que les correspondances, et LEFT JOIN quand vous voulez conserver l'intégralité d'une table, par exemple pour lister tous vos clients, y compris ceux qui n'ont rien commandé.
Le mot-clé ON indique à SQL comment relier les deux tables, c'est-à-dire quelle colonne de l'une correspond à quelle colonne de l'autre. Par exemple, ON clients.id = commandes.client_id signifie « relie chaque commande à son client là où les identifiants correspondent ». Sans ON, SQL ne sait pas comment associer les lignes et crée un produit cartésien (toutes les combinaisons possibles), ce qui donne un résultat erroné. Le ON est donc le cœur de toute jointure.
Un produit cartésien se produit quand vous joignez deux tables sans condition ON (ou avec une condition incorrecte). SQL associe alors chaque ligne de la première table avec chaque ligne de la seconde. Si vous avez 100 clients et 100 commandes, vous obtenez 10 000 lignes sans aucun sens. C'est l'erreur de débutant la plus courante. Le symptôme : un résultat avec beaucoup trop de lignes. La solution : toujours préciser la condition ON qui relie correctement les deux tables.
L'INNER JOIN est la plus utilisée au quotidien : la plupart du temps, on veut voir les données qui se correspondent réellement entre deux tables. Le LEFT JOIN arrive juste derrière, dès qu'on veut conserver toutes les lignes d'une table de référence (tous les clients, tous les produits...). Le RIGHT JOIN est rare (on le remplace par un LEFT JOIN en inversant les tables) et le FULL JOIN sert surtout à comparer deux tables. En pratique, INNER et LEFT couvrent l'immense majorité des besoins.
Oui, et c'est même très courant. Dans une vraie base, on enchaîne souvent trois tables ou plus : clients, commandes, produits, par exemple. On ajoute simplement les jointures les unes après les autres, chacune avec son propre ON. Le principe reste exactement le même que pour deux tables : reliez deux tables, puis reliez le résultat à une troisième. Si vous maîtrisez la jointure entre deux tables, vous maîtrisez l'enchaînement. C'est juste une question d'organisation et de lisibilité.
Probablement parce que votre système de base de données ne le supporte pas directement. MySQL ne gère pas le FULL JOIN nativement (il faut le simuler avec une combinaison de LEFT JOIN et RIGHT JOIN). En revanche, PostgreSQL et SQL Server l'acceptent sans problème. Si vous obtenez une erreur de syntaxe sur un FULL JOIN, vérifiez quel moteur de base vous utilisez : ce n'est pas une erreur de votre part, mais une limite de l'outil.
NULL représente une absence de valeur, une case vide, « rien ». Dans un LEFT JOIN, quand une ligne de la table de gauche n'a aucune correspondance à droite, SQL remplit les colonnes de droite avec NULL. Par exemple, un client sans commande aura NULL dans la colonne produit. C'est très utile : pour trouver « les clients qui n'ont jamais commandé », il suffit de garder les lignes où le produit est NULL. NULL n'est pas zéro ni une chaîne vide : c'est l'absence d'information.
Les jointures ont la réputation d'être difficiles, mais c'est surtout une question de schéma mental. Une fois que vous visualisez deux tables reliées par une colonne commune, et que vous avez en tête le schéma des quatre zones (INNER, LEFT, RIGHT, FULL), tout devient logique. La clé, c'est de pratiquer sur de vrais exemples et d'observer comment le résultat change. Avec quelques heures de pratique guidée, le concept est acquis. C'est exactement ce qu'on travaille pas à pas dans la formation Data Analyst & IA.
Le SQL est la compétence socle du Data Analyst. Commencez par les bases (SELECT, WHERE, ORDER BY), puis les jointures, les agrégations (GROUP BY) et les sous-requêtes. La formation Data Analyst & IA de DataSuits (2 990 € TTC) vous forme au SQL, à Python, Power BI et l'IA sur des données réelles, avec un certificat de l'Université Paris 1 Panthéon-Sorbonne. Elle est éligible CPF, France Travail et OPCO, avec mentors 7j/7 et accompagnement carrière. La note Google de DataSuits est de 5,0/5 sur 110 avis vérifiés. Notre formation SQL dédiée est aussi disponible.
SW
À propos de l'auteur
Samy Wahbi
Formateur Data · Responsable parcours Data Analyst

Formateur Data et responsable du parcours Data Analyst chez DataSuits, j'enseigne le SQL, Python et Power BI au quotidien. Mon obsession : rendre les concepts techniques limpides, en partant de zéro et en s'appuyant sur des exemples concrets. Les jointures, je les ai expliquées à des centaines d'apprenants, et je sais exactement où ça coince.

Conclusion : les jointures, votre passeport pour la data

Vous voilà armé. Une jointure SQL relie deux tables grâce à une colonne commune, avec le mot-clé ON. L'INNER JOIN garde les correspondances, le LEFT JOIN conserve tout le côté gauche, le RIGHT JOIN fait l'inverse, et le FULL JOIN garde tout le monde. Le schéma des quatre zones et nos deux petites tables d'exemple vous suffisent pour répondre à la quasi-totalité de vos besoins.

Le seul vrai secret, maintenant, c'est la pratique. Recréez les exemples, modifiez les données, observez. En quelques séances, ce qui faisait peur deviendra un réflexe. Et le jour où vous enchaînez trois jointures sans réfléchir, vous saurez que vous pensez désormais comme un Data Analyst.

Pour transformer ces bases en métier, notre formation Data Analyst & IA à 2 990 € avec certificat de l'Université Paris 1 Panthéon-Sorbonne vous forme au SQL, à Python, Power BI et l'IA sur des données réelles. Prochaine étape : prenez rendez-vous avec un conseiller. 20 minutes pour bâtir votre projet. Service gratuit, sans engagement.

Financez votre formation en toute simplicité

Le financement ne doit jamais être un frein à votre projet.
Chez DataSuits, nos conseillers pédagogiques vous accompagnent à chaque étape pour trouver la meilleure solution de financement adaptée à votre profil:

logo-mon-compte-professionnel-de-formationFrance-travail-2023.svgopco-1

Candidater à l’une de nos formations DataSuits

Remplissez ce court formulaire pour candidater à la formation de votre choix.
Notre équipe pédagogique vous contactera rapidement pour échanger sur votre parcours et vous accompagner dans la suite de votre inscription.

Logo_datasuits

Votre demande a bien été prise en compte. 📚

Prochaine étape 👇
Réservez un échange téléphonique avec un conseiller pour parler de votre projet de formation
Contacter un conseiller
Oups ! Une erreur est survenue lors de l’envoi du formulaire.