0Pricing
SQL Academy · Leçon

Fonctionnement de INNER JOIN

Comprenez INNER JOIN comme un produit cartésien filtré, écrivez des conditions de jointure et lisez la sortie de EXPLAIN pour les jointures.

Fonctionnement de INNER JOIN est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.

Le INNER JOIN

INNER JOIN renvoie uniquement les lignes qui possèdent une paire correspondante dans BOTH tables, selon la condition ON.

INNER JOIN de base

Récupérez chaque commande avec son utilisateur :

SELECT o.id, o.total, u.email
FROM orders o
INNER JOIN users u ON u.id = o.user_id;

-- INNER is the default — you can also write:
SELECT o.id, o.total, u.email
FROM orders o
JOIN users u ON u.id = o.user_id;

Plusieurs conditions dans ON

La clause ON est une expression booléenne ordinaire :

SELECT *
FROM events e
JOIN sessions s
  ON s.user_id = e.user_id
 AND e.created_at BETWEEN s.start_at AND s.end_at;

Alias

Les alias raccourcissent les requêtes et évitent les références de colonne ambiguës :

SELECT o.id, u.email
FROM orders AS o          -- AS is optional
JOIN users  AS u ON u.id = o.user_id;

JOIN de trois tables ou plus

Enchaînez les jointures en répétant la clause JOIN :

SELECT o.id, u.email, p.name AS product
FROM orders   o
JOIN users    u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id;

USING (colonne)

Lorsque la colonne de jointure porte le même nom dans les deux tables, vous pouvez écrire USING — la colonne n’apparaît alors qu’une seule fois dans le résultat :

SELECT o.id, total, email
FROM orders
JOIN users USING (user_id);   -- requires both tables to have user_id

NATURAL JOIN

Effectue la jointure sur toutes les colonnes portant le même nom — attention : cette approche devient fragile lorsque des colonnes sont ajoutées.

-- Avoid in production code:
SELECT * FROM orders NATURAL JOIN users;

Conditions de JOIN et WHERE

Pour INNER JOIN, une condition dans ON est logiquement équivalente à une condition dans WHERE. Convention : placez dans ON les filtres qui définissent la relation de JOIN, et dans WHERE les filtres de lignes.

SELECT * FROM orders o
JOIN users u ON u.id = o.user_id   -- join condition
WHERE u.country = 'US';            -- row filter

Multiplication des résultats

Si une ligne de A correspond à trois lignes de B, le résultat comporte trois lignes. C’est normal — mais surprenant si vous l’oubliez. Vous agrégez ? Utilisez COUNT(*) avec précaution.

Aperçu de l’auto-JOIN

Vous pouvez joindre une table à elle-même en donnant un alias différent à chaque instance :

SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;

Performances de INNER JOIN

Les jointures internes sont rapides lorsque :

  • La colonne de jointure est indexée (en particulier du côté FK)
  • Une table est petite (jointure par hachage) ou les deux sont triées (jointure par fusion)
  • Vous filtrez tôt pour conserver un faible nombre de lignes intermédiaires

Récapitulatif

INNER JOIN conserve uniquement les paires correspondantes.

  • JOIN = INNER JOIN par défaut
  • ON exprime la condition de jointure
  • Les alias gardent les requêtes courtes
  • Les colonnes de jointure doivent être indexées

Vérification rapide

Que renvoie orders INNER JOIN users ON users.id = orders.user_id lorsqu’une commande n’a aucun utilisateur correspondant (orpheline) ?

Questions Fréquemment Posées

La leçon « Fonctionnement de INNER JOIN » est-elle gratuite ?

Oui — le texte complet de « Fonctionnement de INNER JOIN » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fonctionnement de INNER JOIN » ?

Comprenez INNER JOIN comme un produit cartésien filtré, écrivez des conditions de jointure et lisez la sortie de EXPLAIN pour les jointures. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SQL Academy ?

Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Fonctionnement de INNER JOIN » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?

Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi les jointures (rappel du modèle relationnel)
  2. Fonctionnement de INNER JOIN
  3. LEFT/RIGHT JOIN et jointures OUTER
  4. Auto-jointures et alias
← Retour à SQL Academy