INNER JOIN ·
ON ·
Mehrfach-Joins ·
Tabellen-Aliase ·
JOIN + WHERE ·
Praxis-Beispiele
Mit INNER JOIN verknüpfen Sie Daten aus zwei oder mehr Tabellen. Es werden nur die Datensätze zurückgegeben, die in allen verknüpften Tabellen eine Übereinstimmung haben.
INNER JOIN ist die häufigste JOIN-Art. Er kombiniert Zeilen aus zwei Tabellen, wenn die ON-Bedingung erfüllt ist. Datensätze ohne Übereinstimmung werden nicht zurückgegeben.
| Regel | Beschreibung |
|---|---|
| ON-Bedingung | Definiert, wie die Tabellen verknüpft werden (meist Fremdschlüssel = Primärschlüssel) |
| Keine Übereinstimmung | Zeilen ohne passenden Partner in der anderen Tabelle werden ignoriert |
| Spaltennamen | Bei gleichen Spaltennamen in beiden Tabellen muss die Tabelle angegeben werden (z.B. kunden.id) |
| Reihenfolge | Die Reihenfolge der Tabellen im JOIN ist egal (INNER JOIN ist kommutativ) |
JOIN geschrieben – das ist äquivalent. Verwenden Sie immer eine ON-Bedingung, die auf Primärschlüssel = Fremdschlüssel basiert.
Die ON-Bedingung definiert, welche Spalten aus den Tabellen für die Verknüpfung verwendet werden. In den meisten Fällen verbindet man einen Primärschlüssel mit einem Fremdschlüssel.
| Bedingung | Beschreibung | Beispiel |
|---|---|---|
| Gleichheit (=) | Standard: Primärschlüssel = Fremdschlüssel | ON k.id = b.kunde_id |
| Zusammengesetzte Schlüssel | Mehrere Spalten für die Verknüpfung | ON a.id = b.a_id AND a.jahr = b.jahr |
| Ungleiche Spaltennamen | Wenn die Spalten unterschiedlich heißen | ON p.hersteller = h.name |
| Mit anderen Operatoren | >, <, LIKE möglich (selten) | ON a.datum > b.datum |
Mehrfach-Joins verknüpfen drei oder mehr Tabellen in einer Abfrage. Jeder JOIN baut auf dem vorherigen Ergebnis auf – wie eine Kette von Tabellen.
Tabellen-Aliase verkürzen die Schreibweise und sind bei JOINs mit mehreren Tabellen unverzichtbar. Sie werden mit AS oder ohne definiert.
k für kunden, b für bestellungen). Das macht den Code lesbarer und ist in komplexen Abfragen unerlässlich.
JOIN + WHERE kombiniert die Verknüpfung von Tabellen mit der Filterung von Ergebnissen. WHERE wird nach dem JOIN ausgeführt und filtert die bereits verknüpften Datensätze.
Praxis-Beispiele zeigen typische Anwendungen von INNER JOIN – von Umsatzberichten über Bestellanalysen bis zu Auswertungen mit Aggregationen.
JOIN
ON
Mehrfach
Alias
WHERE
Analysen
SELECT k.name, b.datum FROM kunden k INNER JOIN bestellungen b ON k.id = b.kunde_id WHERE b.betrag > 100;