Skip to content

Introduction aux jointures

Bonne lecture et bon apprentissage !
Junior TSAFACK – 08/08/2026
⏱️ Temps de lecture estimé : 5 minutes


Les jointures en SQL permettent d’associer plusieurs tables dans une même requête. Cela permet d’exploiter la puissance des bases de données relationnelles pour obtenir des résultats qui combinent les données de plusieurs tables de manière efficace.


Dans une base de données relationnelle, les données sont organisées en tables distinctes pour éviter la redondance et garantir la cohérence. Par exemple :

  • Une table utilisateur contient les informations sur les utilisateurs.
  • Une table commande contient les commandes passées.

Pour obtenir la liste des commandes avec le nom de l’utilisateur qui les a passées, il faut lier ces deux tables. C’est exactement ce que permettent les jointures.


Une jointure consiste à associer les lignes de deux tables en comparant les valeurs d’une colonne de la première table avec les valeurs d’une colonne de la seconde table.

Table A Table B
+----+----------+ +----+----------+--------+
| id | nom | | id | id_user | produit|
+----+----------+ +----+----------+--------+
| 1 | Pierre | | 1 | 1 | Clavier|
| 2 | Marie | | 2 | 1 | Souris |
| 3 | Jean | | 3 | 2 | Ecran |
+----+----------+ +----+----------+--------+
Jointure (INNER JOIN) sur A.id = B.id_user :
+----------+----------+---------+
| nom | produit | id_user |
+----------+----------+---------+
| Pierre | Clavier | 1 |
| Pierre | Souris | 1 |
| Marie | Ecran | 2 |
+----------+----------+---------+

Remarque : Les jointures s’utilisent généralement avec une condition d’égalité (=) entre une colonne de la première table et une colonne de la seconde table (comme une clé primaire et une clé étrangère). Mais elles peuvent aussi utiliser d’autres opérateurs (>, <, <>, etc.) pour des cas particuliers (jointures d’inégalité).


Imaginons une base de données qui possède :

  • Une table utilisateur avec les informations des utilisateurs.
  • Une table adresse qui contient les adresses de ces utilisateurs.

Table « utilisateur » :

id prenom nom email ville
1 Aimée Marechal [email protected] Paris
2 Esmée Lefort [email protected] Lyon
3 Marine Prevost [email protected] Lille
4 Luc Rolland [email protected] Marseille

Table « commande » :

utilisateur_id date_achat num_facture prix_total
1 2013-01-23 A00103 203.14
1 2013-02-14 A00104 124.00
2 2013-02-17 A00105 149.45
2 2013-02-21 A00106 235.35
5 2013-03-02 A00107 47.58

Avec une jointure, il est possible d’obtenir les données de l’utilisateur et de ses commandes en une seule requête.


Il existe plusieurs méthodes pour associer 2 tables. Voici les principales techniques utilisées :

Type de jointure Description
INNER JOIN Jointure interne : retourne les enregistrements quand la condition est vraie dans les 2 tables. C’est l’une des jointures les plus communes.
CROSS JOIN Jointure croisée : produit cartésien de 2 tables. Associe chaque ligne d’une table avec chaque ligne d’une autre table.
LEFT JOIN Jointure externe gauche : retourne tous les enregistrements de la table de gauche, même si la condition n’est pas vérifiée dans l’autre table.
RIGHT JOIN Jointure externe droite : retourne tous les enregistrements de la table de droite, même si la condition n’est pas vérifiée dans l’autre table.
FULL JOIN Jointure externe complète : retourne les résultats quand la condition est vraie dans au moins une des 2 tables.
SELF JOIN Auto-jointure : jointure d’une table avec elle-même comme si c’était une autre table.
NATURAL JOIN Jointure naturelle : basée sur les colonnes qui portent le même nom dans les deux tables.

Chaque type de jointure peut être représenté par un diagramme de Venn :

INNER JOIN LEFT JOIN RIGHT JOIN FULL JOIN
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│ ███ │ │█████│ │█████│ │█████│
│ ███ │ │█████│ │█████│ │█████│
└─────┘ └──┬──┘ └──┬──┘ └──┬──┘
│ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐
│ │ │ │ │ │
└─────────┘ └─────────┘ └─────────┘
  • INNER JOIN : uniquement l’intersection (éléments communs).
  • LEFT JOIN : tous les éléments de A + l’intersection avec B.
  • RIGHT JOIN : tous les éléments de B + l’intersection avec A.
  • FULL JOIN : tous les éléments de A ET B.

Il est possible d’utiliser des opérateurs autres que = dans une jointure, par exemple pour trouver des enregistrements où une valeur est supérieure à une autre :

SELECT *
FROM produit p1
INNER JOIN produit p2 ON p1.prix > p2.prix;

On peut joindre sur plusieurs colonnes avec AND :

SELECT *
FROM commande c
INNER JOIN livraison l ON c.id = l.commande_id
AND c.date_commande = l.date_livraison;

Les jointures peuvent inclure des fonctions ou des expressions :

SELECT *
FROM commande c
INNER JOIN client cl ON UPPER(c.nom_client) = UPPER(cl.nom);

Le choix du type de jointure dépend de ce que vous souhaitez obtenir :

Si vous voulez… Utilisez…
Uniquement les enregistrements qui existent dans les deux tables INNER JOIN
Tous les enregistrements de la table de gauche LEFT JOIN
Tous les enregistrements de la table de droite RIGHT JOIN
Tous les enregistrements, quelle que soit la correspondance FULL JOIN
Associer chaque enregistrement à tous les autres CROSS JOIN

  1. Utilisez des alias pour simplifier l’écriture des requêtes :
SELECT u.id, u.nom, c.date_achat
FROM utilisateur AS u
INNER JOIN commande AS c ON u.id = c.utilisateur_id;
  1. Spécifiez explicitement les colonnes à sélectionner plutôt que d’utiliser *.

  2. Indexez les colonnes utilisées dans les jointures (JOIN ... ON) pour améliorer les performances.

  3. Testez vos jointures avec un jeu de données limité avant de les exécuter sur de grandes tables.


Vous avez maintenant une vision d’ensemble des jointures. Passons au type de jointure le plus utilisé : le INNER JOIN.

👉 Chapitre 32 : INNER JOIN – Jointure interne


Bonne continuation !
Junior TSAFACK – 08/08/2026