menu
languageFrançais
save_alt Télécharger

Aide-mémoire des JOIN SQL

Référence rapide de tous les types de JOIN SQL, avec schémas visuels et exemples de code

INNER JOIN LE PLUS COURANT

Renvoie uniquement les lignes ayant des valeurs correspondantes dans les deux tables. C'est le type de JOIN par défaut et le plus utilisé.
SELECT orders.id, customers.name, orders.amount
FROM orders
INNER JOIN customers
  ON orders.customer_id = customers.id

Points clés :

  • Renvoie uniquement les enregistrements correspondants des deux tables
  • Filtre automatiquement les lignes sans correspondance
  • Le JOIN le plus performant
  • Peut s'écrire simplement JOIN (INNER est implicite)

LEFT JOIN

Renvoie toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite. En l'absence de correspondance, les colonnes de la table de droite valent NULL.
SELECT customers.name, orders.amount
FROM customers
LEFT JOIN orders
  ON customers.id = orders.customer_id

Points clés :

  • Conserve tous les enregistrements de la table de gauche (la première)
  • Valeurs NULL pour les colonnes de droite sans correspondance
  • Aussi appelé LEFT OUTER JOIN
  • Pratique pour trouver les enregistrements sans données liées

RIGHT JOIN

Renvoie toutes les lignes de la table de droite et les lignes correspondantes de la table de gauche. L'inverse du LEFT JOIN.
SELECT orders.amount, customers.name
FROM orders
RIGHT JOIN customers
  ON orders.customer_id = customers.id

Points clés :

  • Conserve tous les enregistrements de la table de droite (la seconde)
  • Valeurs NULL pour les colonnes de gauche sans correspondance
  • Aussi appelé RIGHT OUTER JOIN
  • Peut toujours être réécrit en LEFT JOIN

FULL OUTER JOIN

Renvoie toutes les lignes des deux tables, avec des valeurs NULL là où il n'y a pas de correspondance, dans un sens comme dans l'autre.
SELECT customers.name, orders.amount
FROM customers
FULL OUTER JOIN orders
  ON customers.id = orders.customer_id

Points clés :

  • Combine les résultats d'un LEFT JOIN et d'un RIGHT JOIN
  • Affiche tous les enregistrements des deux tables
  • Non pris en charge par MySQL (utilise UNION à la place)
  • Pratique pour repérer toutes les relations et les manques

CROSS JOIN À UTILISER AVEC PRUDENCE

Renvoie le produit cartésien des deux tables : chaque ligne de la première table combinée à chaque ligne de la seconde.
SELECT sizes.name, colors.name
FROM sizes
CROSS JOIN colors

-- Alternative syntax
SELECT sizes.name, colors.name
FROM sizes, colors

Points clés :

  • Pas besoin de clause ON (aucune condition de jointure)
  • Nombre de lignes du résultat = (lignes de gauche × lignes de droite)
  • Peut vite produire d'énormes jeux de résultats
  • Pratique pour générer des combinaisons ou des données de test

LEFT ANTI JOIN

Renvoie les lignes de la table de gauche sans correspondance dans la table de droite. Pratique pour trouver les enregistrements sans relation.
SELECT customers.name
FROM customers
LEFT JOIN orders
  ON customers.id = orders.customer_id
WHERE orders.id IS NULL

-- Alternative: NOT EXISTS
SELECT customers.name
FROM customers
WHERE NOT EXISTS (
  SELECT 1 FROM orders
  WHERE orders.customer_id = customers.id
)

Points clés :

  • S'écrit avec LEFT JOIN + WHERE IS NULL
  • Trouve les enregistrements sans données liées
  • Aussi appelé « LEFT EXCLUDING JOIN »
  • Exemple : les clients qui n'ont jamais passé de commande

RIGHT ANTI JOIN

Renvoie les lignes de la table de droite sans correspondance dans la table de gauche. L'inverse du LEFT ANTI JOIN.
SELECT orders.id
FROM customers
RIGHT JOIN orders
  ON customers.id = orders.customer_id
WHERE customers.id IS NULL

-- Usually rewritten as LEFT ANTI JOIN
SELECT orders.id
FROM orders
LEFT JOIN customers
  ON orders.customer_id = customers.id
WHERE customers.id IS NULL

Points clés :

  • S'écrit avec RIGHT JOIN + WHERE IS NULL
  • Trouve les enregistrements orphelins de la table de droite
  • Peut toujours être réécrit en LEFT ANTI JOIN
  • Exemple : les commandes sans client valide

Envie d'une meilleure façon d'écrire du SQL ?

Beekeeper Studio est un éditeur SQL moderne et intuitif, avec autocomplétion, historique des requêtes et prise en charge de plus de 15 bases de données.

Essaie Beekeeper Studio gratuitement