Kombiniert Datensätze aus zwei Tabellen, wenn in einem gemeinsamen Feld übereinstimmende Werte vorhanden sind.
Syntax
FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Feld1Vergleichsoperator Tabelle2.Feld2
Der INNER JOIN-Vorgang setzt sich wie folgt zusammen:
Teil |
Beschreibung |
Tabelle1, Tabelle2 |
Die Namen der Tabellen, aus denen Datensätze zusammengefasst werden. |
Feld1, Feld2 |
Die Namen der verknüpften Felder. Wenn sie nicht numerisch sind, müssen die Felder dieselbe Datentyp und dieselbe Art von Daten enthalten, aber sie müssen nicht denselben Namen haben. |
Vergleichsoperator |
Ein beliebiger relationaler Vergleichsoperator: "=", "<", ">", "<=", ">=" oder "<>". |
Hinweise
Sie können einen INNER JOIN-Vorgang in einer beliebigen FROM-Klausel verwenden. Dies ist die am häufigsten verwendete Verknüpfungsart. Innere Verknüpfungen kombinieren Datensätze aus zwei Tabellen, wenn in einem für beide Tabellen gemeinsamen Feld übereinstimmende Werte vorhanden sind.
Sie können INNER JOIN mit den Tabellen "Departments" und "Employees" verwenden, um alle Mitarbeiter in jeder Abteilung auszuwählen. Um dagegen alle Abteilungen (auch wenn ihnen keine Mitarbeiter zugeordnet sind) oder alle Mitarbeiter (auch wenn einige nicht einer Abteilung zugeordnet sind) auszuwählen, können Sie zum Erstellen eines Äußere Verknüpfung einen LEFT JOIN- oder RIGHT JOIN-Vorgang verwenden.
Wenn Sie versuchen, Felder mit Memo- oder OLE-Objektdaten zu verknüpfen, tritt ein Fehler auf.
Sie können zwei beliebige numerische Felder gleicher Art miteinander verknüpfen. Sie können z. B. eine Verknüpfung anhand von "AutoNumber"- und "Long"-Feldern vornehmen, da diese gleicher Art sind. Es ist jedoch nicht möglich, Felder der Typen "Single" und "Double" zu verknüpfen.
Das folgende Beispiel zeigt, wie Sie die Tabellen "Categories" und "Products" anhand des Felds "CategoryID" verknüpfen können.
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
Im vorigen Beispiel ist "CategoryID" das verknüpfte Feld, wird aber nicht in die Abfrageausgabe einbezogen, da es nicht in der SELECT-Anweisung enthalten ist. Wenn Sie das verknüpfte Feld einbeziehen möchten, geben Sie den Namen des Felds in der SELECT-Anweisung ein – in diesem Fall Categories.CategoryID.
Sie können auch mehrere ON-Klauseln in einer JOIN-Anweisung mit der folgenden Syntax verknüpfen:
SELECT Felder
FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Feld1VergleichsoperatorTabelle2.Feld1 AND ON Tabelle1.Feld2VergleichsoperatorTabelle2.Feld2) OR ON Tabelle1.Feld3VergleichsoperatorTabelle2.Feld3)];Sie können JOIN-Anweisungen auch mithilfe der folgenden Syntax schachteln:
SELECT Felder
FROM Tabelle1 INNER JOIN (Tabelle2 INNER JOIN [( ]Tabelle3 [INNER JOIN [( ]Tabellex [INNER JOIN ...)] ON Tabelle3.Feld3VergleichsoperatorTabellex.Feldx)] ON Tabelle2.Feld2VergleichsoperatorTabelle3.Feld3) ON Tabelle1.Feld1VergleichsoperatorTabelle2.Feld2;Eine LEFT JOIN- oder RIGHT JOIN-Operation kann in einer INNER JOIN-Operation geschachtelt werden, wohingegen eine INNER JOIN-Operation nicht in einer LEFT JOIN- oder RIGHT JOIN-Operation geschachtelt werden kann.