Brigade des Requêtes

Chapitre 5 : INNER JOIN, LEFT JOIN

Croisement de Témoignages

Une seule table raconte rarement toute l'histoire. Les jointures relient deux tables grâce à une colonne commune : la clé primaire d'un côté, la clé étrangère de l'autre.

Clés primaires et étrangères

La clé primaire (PK) identifie de façon unique chaque ligne d'une table. La clé étrangère (FK) est une colonne qui pointe vers la clé d'une autre table. Le schéma dans la barre latérale les montre : PK en ambre, FK en vert, et un trait relie les deux.

INNER JOIN : seulement les correspondances

SELECT e.emplacement, c.nom, c.prenom
FROM empreintes e
INNER JOIN cartes_identite c
  ON e.code_empreinte = c.code_empreinte;
  • e et c sont des alias de tables : plus court à écrire.
  • ON indique la condition qui relie les lignes des deux tables.
  • INNER JOIN ne garde que les lignes qui ont une correspondance des deux côtés.

LEFT JOIN : garder toute la table de gauche

LEFT JOIN conserve toutes les lignes de la table de gauche (celle du FROM). Quand il n'y a pas de correspondance à droite, les colonnes de droite valent NULL.

Toutes les empreintes, même sans propriétaire connu
SELECT e.id, e.emplacement, c.nom
FROM empreintes e
LEFT JOIN cartes_identite c
  ON e.code_empreinte = c.code_empreinte;
Astuce : trouver ce qui n'a PAS de correspondance
SELECT e.id, e.emplacement
FROM empreintes e
LEFT JOIN cartes_identite c
  ON e.code_empreinte = c.code_empreinte
WHERE c.id IS NULL;

À toi de jouer : Exercice guidé

Pour chaque personne du fichier des cartes d'identité, affiche son nom et l'emplacement de son empreinte, avec NULL si on n'a rien relevé à son nom. Complète les ___.

Passer à l'énigme : Les empreintes parlent