Innerer Verbund INNER JOIN
Im vorherigen Kapitel haben wir die allgemeine Struktur einer Multi-Table-Query angeschaut:
MySQL 8.1SELECT tabellen_felder FROM tabelle_1 [INNER] | [[LEFT | RIGHT | FULL][OUTER]] JOIN tabelle_2 ON verbund_bedingung [[INNER] | [[LEFT | RIGHT | FULL][OUTER]] JOIN tabelle_n ON verbund_bedingung]
Bei einer Multi-Table-Query mit innerem Verbund sieht die allgemeine Struktur so aus:
MySQL 8.1SELECT tabellen_felder FROM tabelle_1 [INNER] JOIN tabelle_2 ON verbund_bedingung [[INNER] JOIN tabelle_n ON verbund_bedingung]
Eine Query kann zum Beispiel folgendermassen aussehen:
MySQL 8.1SELECT family_member, member_name FROM Payments INNER JOIN FamilyMembers ON Payments.family_member = FamilyMembers.member_id
Da JOIN standardmäßig als INNER JOIN ausgeführt wird, wenn keine weiteren Angaben gemacht sind, ist INNER beim inneren Verbund optional.
Was ein innerer Verbund ist
Ein innerer Verbund verknüpft Paare von Datensätzen aus zwei Tabellen, die die Verbundbedingung erfüllen, und bildet daraus eine neue Tabelle mit den Spalten aus der ersten und der zweiten Ausgangstabelle.
Visuell sieht das so aus:

Da unsere Bedingung die Gleichheit der Felder Payments.good_id und Goods.good_id verlangt, landen im Ergebnis nur die Datensätze, bei denen in beiden Tabellen derselbe Wert für good_id vorkommt.
WHERE zum Verbinden von Tabellen nutzen
Tabellen lassen sich auch über WHERE innerlich verbinden. Die obige Query, geschrieben mit INNER JOIN, sieht damit so aus:
MySQL 8.1SELECT family_member, member_name FROM Payments, FamilyMembers WHERE Payments.family_member = FamilyMembers.member_id