bg_image
header

Inner Join

Ein INNER JOIN ist ein Begriff aus der Datenbankabfrage (SQL). Er wird verwendet, um Datensätze aus zwei (oder mehr) Tabellen zu kombinieren – und zwar nur die Datensätze, bei denen es in beiden Tabellen passende Werte gibt.

Beispiel:

Du hast zwei Tabellen:

 

Tabelle: Kunden

KundenID Name
1 Anna
2 Bernd
3 Clara

 

Tabelle: Bestellungen

BestellID KundenID Produkt
101 1 Buch
102 2 Laptop
103 4 Handy

Jetzt willst du wissen, welche Kunden Bestellungen gemacht haben. Dafür brauchst du nur die Kunden, die in beiden Tabellen vorkommen.

SQL mit INNER JOIN:

SELECT Kunden.Name, Bestellungen.Produkt
FROM Kunden
INNER JOIN Bestellungen ON Kunden.KundenID = Bestellungen.KundenID;

Ergebnis:

Name Produkt
Anna Buch
Bernd Laptop

Erklärung:

  • Clara hat nichts bestellt → wird nicht angezeigt.

  • Die Bestellung mit KundenID 4 hat keinen passenden Kunden → wird ebenfalls ignoriert.

Kurz gesagt:

Ein INNER JOIN zeigt nur die Datensätze, bei denen es Übereinstimmungen in beiden Tabellen gibt.


Expliziter Join

Ein expliziter Join ist eine klare, direkte Formulierung eines Joins in einer SQL-Abfrage, bei der die Join-Art (z. B. INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN) ausdrücklich im SQL-Statement genannt wird.

Beispiel für einen expliziten Join:

SELECT *
FROM kunden
INNER JOIN bestellungen
ON kunden.kunden_id = bestellungen.kunden_id;

Hier sieht man deutlich:

  • Welche Tabellen verbunden werden (kunden, bestellungen)

  • Welche Join-Art verwendet wird (INNER JOIN)

  • Welche Bedingung für den Join gilt (ON kunden.kunden_id = bestellungen.kunden_id)


Im Gegensatz dazu: Impliziter Join

Ein impliziter Join ist die ältere Schreibweise mit einem Komma in der FROM-Klausel, wobei die Join-Bedingung in der WHERE-Klausel steht:

SELECT *
FROM kunden, bestellungen
WHERE kunden.kunden_id = bestellungen.kunden_id;

Diese Variante ist funktional gleich, aber weniger klar und nicht für komplexe Joins geeignet.


Vorteile des expliziten Joins:

  • Lesbarer und strukturierter, vor allem bei mehreren Tabellen

  • Klarere Trennung von Join-Bedingungen und Filterbedingungen (ON vs. WHERE)

  • Empfohlen in moderner SQL-Programmierung


Impliziter Join

Ein impliziter Join ist eine Art, Tabellen in SQL zu verknüpfen, ohne das Schlüsselwort JOIN explizit zu verwenden. Stattdessen wird der Join über die WHERE-Klausel ausgedrückt.

Beispiel für einen impliziten Join:

SELECT *
FROM kunden, bestellungen
WHERE kunden.kunden_id = bestellungen.kunden_id;

In diesem Beispiel werden die Tabellen kunden und bestellungen durch die Bedingung in der WHERE-Klausel miteinander verknüpft.


Im Vergleich dazu ein expliziter Join:

SELECT *
FROM kunden
JOIN bestellungen ON kunden.kunden_id = bestellungen.kunden_id;

Unterschiede:

Kriterium Impliziter Join Expliziter Join
Syntax Tabellen durch Komma getrennt, Verknüpfung in WHERE Nutzung von JOIN und ON
Lesbarkeit Weniger übersichtlich bei vielen Joins Bessere Struktur und Lesbarkeit
Fehleranfälligkeit Höher (z. B. versehentliches Kreuzprodukt) Weniger, da Join-Bedingungen klarer
ANSI-92-Standard Nicht konform Konform

Wann wird ein impliziter Join verwendet?

Früher war das der Standard, aber heute wird der explizite Join empfohlen, da er lesbarer, strukturierter und weniger fehleranfällig ist – besonders bei komplexen Abfragen mit mehreren Tabellen.