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.
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
)
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.
Lesbarer und strukturierter, vor allem bei mehreren Tabellen
Klarere Trennung von Join-Bedingungen und Filterbedingungen (ON
vs. WHERE
)
Empfohlen in moderner SQL-Programmierung
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.
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.
SELECT *
FROM kunden
JOIN bestellungen ON kunden.kunden_id = bestellungen.kunden_id;
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 |
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.