Leçon 7 sur 8 · Notions fondamentales des bases de données · Débutant

La plupart des requêtes de base de données utiles impliquent plus d'une table. Une jointure combine des lignes de deux tables basées sur une colonne correspondante — généralement une relation de clé étrangère. Cette leçon explique pourquoi les jointures sont nécessaires et comment fonctionnent les deux types les plus courants.

Pourquoi les jointures sont nécessaires

Dans une base de données bien conçue, les informations sont réparties sur plusieurs tables. La table programmes stocke les détails des programmes, mais le nom de l'emplacement est dans la table emplacements. Pour voir le nom d'un programme avec le nom de son emplacement, vous devez joindre les deux tables.

La syntaxe de base des jointures

SELECT
    programmes.nom_programme,
    emplacements.nom_emplacement
FROM programmes
INNER JOIN emplacements
    ON programmes.emplacement_id = emplacements.emplacement_id;

Cela retourne une ligne pour chaque programme, avec le nom de l'emplacement correspondant. Les programmes sans emplacement correspondant sont exclus.

Jointure interne (INNER JOIN)

Un INNER JOIN retourne uniquement les lignes où une correspondance existe dans les deux tables. Si un programme a un emplacement_id qui n'existe pas dans la table emplacements, ce programme est exclu des résultats.

Jointure externe gauche (LEFT JOIN)

Un LEFT JOIN retourne toutes les lignes de la table gauche (celle listée en premier), plus les lignes correspondantes de la table droite. S'il n'y a pas de correspondance, les colonnes de la table droite apparaissent comme nulles :

SELECT
    emplacements.nom_emplacement,
    programmes.nom_programme
FROM emplacements
LEFT JOIN programmes
    ON emplacements.emplacement_id = programmes.emplacement_id;

Cela retourne chaque emplacement, même ceux sans programmes. Pour les emplacements sans programmes, nom_programme sera nul.

Effets un-à-plusieurs sur le nombre de lignes

Quand vous joignez un côté "un" à un côté "plusieurs", le résultat a une ligne par enregistrement "plusieurs". Si un emplacement a cinq programmes, la jointure produit cinq lignes pour cet emplacement. Vérifiez le nombre de lignes avant de faire confiance à un résultat de jointure.

Point clé

Joindre sur des noms au lieu d'identifiants est une erreur courante. Si deux programmes partagent un nom d'emplacement orthographié légèrement différemment, la jointure manquera la correspondance. Joignez toujours sur des identifiants stables, pas sur des champs texte qui peuvent varier.

Points à retenir

  • Les jointures combinent des lignes de deux tables basées sur une colonne correspondante.
  • INNER JOIN retourne uniquement les lignes avec des correspondances dans les deux tables.
  • LEFT JOIN retourne toutes les lignes de la table gauche, avec des nulles où il n'y a pas de correspondance.
  • Les jointures un-à-plusieurs multiplient les lignes — vérifiez les comptages avant et après.
  • Joignez sur des identifiants stables, pas sur des champs texte qui peuvent varier.
Termes de recherche suggérés
  • SQL INNER JOIN expliqué
  • tutoriel SQL LEFT JOIN
  • SQL jointure plusieurs tables débutant
  • validation nombre de lignes jointure SQL
← Filtrage, tri et agrégationConception et bonnes pratiques →