Ein SQL-Join lässt sich am besten als Paarung von Zeilen verstehen. Für jede Zeile in der linken Tabelle sucht die Datenbank in der rechten Tabelle nach Zeilen, die die ON-Bedingung erfüllen; jede Übereinstimmung ergibt eine Ergebniszeile, die Spalten aus beiden Quelltabellen enthält.
Um dies zu veranschaulichen, betrachten wir zwei kleine Tabellen: students(id, name) und enrollments(student_id, course). Wir verknüpfen sie über eine Gleichheitsprüfung: students.id = enrollments.student_id. So lässt sich nachvollziehen, wie auf der Grundlage dieser Bedingung die Zeilenpaare gebildet werden.
Sobald man einen Join als Vorgang des Zusammenführens von Paaren betrachtet, verliert die Zeilenanzahl ihr Geheimnis. Jede Zeile der linken Tabelle liefert so viele Ergebniszeilen, wie es passende Zeilen in der rechten Tabelle gibt – das können null, eine oder mehrere sein. Die Gesamtgröße des Joins entspricht der Summe dieser Einzelbeiträge.
Bevor Sie sich den SQL-Code ansehen, stellen Sie eine konkrete Frage zu den betreffenden Tabellen. Wenn ein Student zwei passende Einschreibungsdatensätze hat, ein anderer einen und ein dritter keinen – wie viele Zeilen sollte das Ergebnis des Joins dann insgesamt enthalten? Untersuchen Sie die Anzahl der Übereinstimmungen pro Student und wie sich diese aufsummieren.