Il est plus simple de concevoir une jointure SQL comme une mise en correspondance de lignes. Pour chaque ligne de la table de gauche, la base de données recherche dans la table de droite les lignes satisfaisant la condition ON ; chaque correspondance génère une ligne de résultat contenant les colonnes des deux tables sources.
Pour illustrer cela concrètement, prenons deux tables de petite taille, students(id,name) et enrollments(student_id,course), et associons-les via une condition d’égalité : students.id = enrollments.student_id. Observez comment les paires de lignes se forment sur la base de cette unique condition.
Une fois que l’on considère une jointure comme une mise en relation, le nombre de lignes résultantes cesse d’être un mystère. Chaque ligne de la table de gauche génère autant de lignes en sortie qu’elle compte de correspondances dans la table de droite (ce nombre pouvant être 0, 1 ou plusieurs) ; la taille totale de la jointure correspond à la somme de ces contributions.
Avant d’examiner le code SQL, posez-vous une question précise sur ces tables. Si un étudiant a 2 lignes d’inscription correspondantes, un autre en a 1 et un troisième en a 0, quel nombre total de lignes la jointure doit-elle produire ? Analysez le nombre de correspondances par étudiant et la manière dont elles s’additionnent.