🧚 Écoute ! Beekeeper Studio est une interface de base de données rapide, moderne et open source Télécharger
19 mai 2025 Par Matthew Rathbone

Les jointures de tables sont l’un des concepts les plus importants de SQL Server : elles te permettent de combiner les données de plusieurs tables pour créer des rapports et des analyses pertinents. Que tu construises des rapports complexes ou que tu analyses des données, comprendre le fonctionnement des jointures est indispensable pour tout développeur SQL.

Dans ce guide complet, on passe en revue chaque type de jointure de SQL Server avec des exemples pratiques, des explications claires et des cas concrets.

🔖 Référence rapide : besoin d’un aide-mémoire ? Jette un œil à notre antisèche des JOIN SQL avec tous les types de JOIN, des schémas visuels et des exemples de code au même endroit.

Comprendre les jointures SQL Server

Les jointures SQL Server sont des opérations qui combinent les lignes de deux tables ou plus à partir d’une colonne commune. Les types de jointure les plus courants sont :

  • INNER JOIN : renvoie uniquement les enregistrements correspondants des deux tables
  • LEFT JOIN : renvoie tous les enregistrements de la table de gauche, plus les enregistrements correspondants de la table de droite
  • RIGHT JOIN : renvoie tous les enregistrements de la table de droite, plus les enregistrements correspondants de la table de gauche
  • FULL OUTER JOIN : renvoie tous les enregistrements, qu’il y ait une correspondance dans l’une ou l’autre table

Préparer les données d’exemple

Pour nos exemples, on utilise deux tables simples qui représentent un scénario métier courant :

Table Orders :

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    Product NVARCHAR(50),
    OrderDate DATE
);

INSERT INTO Orders VALUES 
(1, 1, 'Laptop', '2024-01-15'),
(2, 2, 'Mouse', '2024-01-16'),
(3, 3, 'Keyboard', '2024-01-17');
OrderID CustomerID Product OrderDate
1 1 Laptop 2024-01-15
2 2 Mouse 2024-01-16
3 3 Keyboard 2024-01-17

Table Customers :

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    Name NVARCHAR(50),
    City NVARCHAR(50)
);

INSERT INTO Customers VALUES 
(1, 'John Doe', 'New York'),
(2, 'Jane Smith', 'Los Angeles'),
(4, 'Alex Johnson', 'Chicago');
CustomerID Name City
1 John Doe New York
2 Jane Smith Los Angeles
4 Alex Johnson Chicago

INNER JOIN

Un INNER JOIN renvoie uniquement les lignes qui ont une valeur correspondante dans les deux tables. C’est le type de jointure le plus utilisé, idéal quand tu veux voir uniquement les enregistrements présents dans les deux tables.

Quand utiliser INNER JOIN

  • Quand tu as besoin de données présentes dans les deux tables
  • Pour des rapports montrant des relations complètes
  • Quand tu veux exclure les enregistrements incomplets

Exemple de requête SQL

SELECT 
    o.OrderID,
    c.Name,
    c.City,
    o.Product,
    o.OrderDate
FROM Orders o
INNER JOIN Customers c ON o.CustomerID = c.CustomerID;

Résultat

OrderID Name City Product OrderDate
1 John Doe New York Laptop 2024-01-15
2 Jane Smith Los Angeles Mouse 2024-01-16

Points clés :

  • Seulement 2 lignes renvoyées (OrderID 3 est exclu car CustomerID 3 n’existe pas dans la table Customers)
  • Seuls les clients ayant passé des commandes apparaissent dans le résultat
  • La condition de jointure (o.CustomerID = c.CustomerID) détermine quelles lignes correspondent

LEFT JOIN

Un LEFT JOIN (aussi appelé LEFT OUTER JOIN) renvoie toutes les lignes de la table de gauche, plus les lignes correspondantes de la table de droite. Quand il n’y a pas de correspondance, les colonnes de la table de droite contiennent NULL.

Quand utiliser LEFT JOIN

  • Quand tu as besoin de tous les enregistrements de la table principale (table de gauche)
  • Pour des rapports montrant des données manquantes ou des relations absentes
  • Quand tu veux trouver les enregistrements sans correspondance

Exemple de requête SQL

SELECT 
    o.OrderID,
    c.Name,
    c.City,
    o.Product,
    o.OrderDate
FROM Orders o
LEFT JOIN Customers c ON o.CustomerID = c.CustomerID;

Résultat

OrderID Name City Product OrderDate
1 John Doe New York Laptop 2024-01-15
2 Jane Smith Los Angeles Mouse 2024-01-16
3 NULL NULL Keyboard 2024-01-17

Points clés :

  • Les 3 commandes apparaissent dans le résultat (toutes les données de la table de gauche sont conservées)
  • OrderID 3 affiche NULL pour les informations client car CustomerID 3 n’existe pas dans la table Customers
  • Utile pour repérer les commandes sans données client valides

RIGHT JOIN

Un RIGHT JOIN (aussi appelé RIGHT OUTER JOIN) renvoie toutes les lignes de la table de droite, plus les lignes correspondantes de la table de gauche. Quand il n’y a pas de correspondance, les colonnes de la table de gauche contiennent NULL.

Quand utiliser RIGHT JOIN

  • Quand tu as besoin de tous les enregistrements de la table de droite
  • Moins courant que LEFT JOIN (tu peux généralement le réécrire en LEFT JOIN)
  • Utile quand les données « principales » sont dans la seconde table

Exemple de requête SQL

SELECT 
    o.OrderID,
    c.Name,
    c.City,
    o.Product,
    o.OrderDate
FROM Orders o
RIGHT JOIN Customers c ON o.CustomerID = c.CustomerID;

Résultat

OrderID Name City Product OrderDate
1 John Doe New York Laptop 2024-01-15
2 Jane Smith Los Angeles Mouse 2024-01-16
NULL Alex Johnson Chicago NULL NULL

Points clés :

  • Les 3 clients apparaissent dans le résultat (toutes les données de la table de droite sont conservées)
  • Alex Johnson affiche NULL pour les informations de commande car il n’a passé aucune commande
  • Utile pour repérer les clients qui n’ont rien acheté

FULL OUTER JOIN

Un FULL OUTER JOIN (ou simplement FULL JOIN) renvoie toutes les lignes, qu’il y ait une correspondance dans l’une ou l’autre table. Il combine les résultats des jointures LEFT et RIGHT, avec des valeurs NULL là où il n’y a pas de correspondance d’un côté ou de l’autre.

Quand utiliser FULL OUTER JOIN

  • Quand tu as besoin de tous les enregistrements des deux tables
  • Pour une analyse de données complète
  • Pour identifier toutes les relations et les manques entre les tables

Exemple de requête SQL

SELECT 
    o.OrderID,
    c.Name,
    c.City,
    o.Product,
    o.OrderDate
FROM Orders o
FULL OUTER JOIN Customers c ON o.CustomerID = c.CustomerID;

Résultat

OrderID Name City Product OrderDate
1 John Doe New York Laptop 2024-01-15
2 Jane Smith Los Angeles Mouse 2024-01-16
3 NULL NULL Keyboard 2024-01-17
NULL Alex Johnson Chicago NULL NULL

Points clés :

  • Les 4 lignes possibles apparaissent dans le résultat
  • Affiche à la fois les commandes orphelines (OrderID 3) et les clients sans commande (Alex Johnson)
  • Combine la vue d’ensemble des jointures LEFT et RIGHT
  • La vision la plus complète de la relation entre les tables

À retenir

Comprendre les jointures SQL Server est indispensable pour interroger efficacement une base de données. Voici un récapitulatif :

Type de jointure Renvoie Cas d’usage
INNER JOIN Uniquement les enregistrements correspondants Le plus courant ; quand tu as besoin de relations complètes
LEFT JOIN Tout à gauche + correspondances à droite Quand la table de gauche est principale ; trouver les données manquantes à droite
RIGHT JOIN Tout à droite + correspondances à gauche Moins courant ; quand la table de droite est principale
FULL OUTER JOIN Tous les enregistrements des deux tables Analyse complète ; trouver toutes les relations et les manques

Bonnes pratiques

  1. Utilise des alias de table (o pour Orders, c pour Customers) pour des requêtes plus lisibles
  2. Commence par INNER JOIN si tu hésites, puis ajuste selon tes besoins
  3. Privilégie LEFT JOIN à RIGHT JOIN pour une meilleure lisibilité
  4. Précise toujours la condition de jointure avec la clause ON
  5. Pense aux performances - les jointures sur des colonnes indexées sont plus rapides

Conseils pour pratiquer

Pour maîtriser les jointures SQL Server :

  1. Commence avec de petits jeux de données comme les exemples ci-dessus
  2. Dessine des diagrammes de Venn pour visualiser ce que renvoie chaque jointure
  3. Expérimente avec différentes structures de tables et relations
  4. Utilise SQL Server Management Studio ou Beekeeper Studio pour t’entraîner
  5. Teste les cas limites comme les valeurs NULL et les relations manquantes

Retiens bien : les jointures sont fondamentales dans les bases de données relationnelles. Une fois maîtrisées, tu pourras écrire des requêtes puissantes qui tirent des enseignements utiles de tes données.

Beekeeper Studio est une interface de base de données gratuite & open source

Le meilleur outil de requêtes & éditeur SQL que j’aie jamais utilisé. Il m’offre tout ce dont j’ai besoin pour gérer ma base de données. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio est rapide, intuitif et facile à utiliser. Beekeeper prend en charge plein de bases de données et fonctionne parfaitement sous Windows, Mac et Linux.

La version Linux de Beekeeper est 100% complète : rien de bâclé, aucun compromis sur les fonctionnalités.

Ce que les utilisateurs disent de Beekeeper Studio

★★★★★
« Beekeeper Studio a complètement remplacé mon ancien workflow SQL. C’est rapide, intuitif, et ça rend le travail sur les bases de données à nouveau agréable. »
— Alex K., développeur base de données
★★★★★
« J’ai essayé beaucoup d’interfaces de base de données, mais Beekeeper trouve l’équilibre parfait entre fonctionnalités et simplicité. Ça marche, tout simplement. »
— Sarah M., ingénieure full stack