XamSQL — la salle de sport SQL des francophones

Jointure · 25 min

INNER JOIN : croiser deux tables sur une clé

On ne travaille jamais avec une seule table en pratique.

Contexte

On ne travaille jamais avec une seule table en pratique. Les étudiants sont dans une table, les notes dans une autre, les cours dans une troisième. Pour répondre à « quelle note a obtenu tel étudiant dans tel cours », il faut reunir ces tables grâce a leur cle commune. C'est le rôle de JOIN.

Explication

L'INNER JOIN retourne les lignes qui ont une correspondance dans les deux tables, selon une condition de jointure (generalement une cle primaire / cle etrangere).

Syntaxe : SELECT ... FROM t1 INNER JOIN t2 ON t1.cle = t2.cle;

Points cles :

Exemple guidé

Objectifs : afficher chaque cours avec son professeur.

1. Table cours (id, nom, professeur_id), Table professeurs (id, prenom, nom) 2. Cle de jointure : cours.professeur_id = professeurs.id 3. On selectionne les colonnes pertinentes : c.nom, p.nom AS professeur

SELECT c.nom, p.nom AS professeur
FROM cours c
INNER JOIN professeurs p ON p.id = c.professeur_id
ORDER BY c.nom;
nomprofesseur
Algèbre linéaireKane
Analyse 2Kane
Bases de donnéesNdiaye
GéométrieKane
Littérature moderneBa
MacroéconomieFaye
MicroéconomieFaye
Mécanique classiqueMendy
Programmation PythonNdiaye
RéseauxNdiaye

À retenir

INNER JOIN = lignes presentes dans les deux tables selon la condition ON. Si une ligne n'a pas de correspondance, elle n'apparaît pas. On peut chainer plusieurs INNER JOIN pour croiser plus de deux tables. L'ordre des tables dans le FROM n'a pas d'impact sur le resultat d'un INNER JOIN.

Exercices de cette leçon

Faire les exercices →