SQL: Vorteile Inner Join gegenüber Where Bedingung

ThomasACSQL

Grünschnabel
Hallo
ich beschäftige mich derzeit in einem einfachen DBS mit elementaren SQL-Abfragen. Dabei bin ich auf die JOIN-Abfrage gestoßen, die immer wieder verwendet wird. Die grundlegende Funktionalität ist klar, jedoch erschließt es mir bisher nicht, welchen Vorteil mir die Nutzung von "Inner Join ... On" im Vergleich zu einer einfachen Where Bedingung bringt.

Folgendes Minimalbeispiel soll dies verdeutlichen:

Ich habe zwei Tabellen:
upload_2016-5-18_18-33-9.png

upload_2016-5-18_18-33-15.png

und möchte nun die Kreditkartendaten mit entsprechenden Rechnungen ausgeben. Die SQL-Abfrage

SELECT RechnungsNr, KundenNr, Betrag, Rechnungen.Kartennummer, Firma, Inhaber, Ablaufdatum

FROM Kreditkarte

INNER JOIN Rechnungen ON Kreditkarte.Kartennummer = Rechnungen.Kartennummer;
liefert das gewünschte Ergebnis:

upload_2016-5-18_18-35-4.png

Genaudasselbe Ergebnis erhalte ich aber auch mit der bekannten WHERE-Klausel:

SELECT RechnungsNr, KundenNr, Betrag, Rechnungen.Kartennummer, Firma, Inhaber, Ablaufdatum

FROM Kreditkarte, Rechnungen

WHERE Kreditkarte.Kartennummer = Rechnungen.Kartennummer;​

Wobei letzteres aus meiner Sicht sogar leichter verständlich ist. Gibt es Beispiele in denen Inner-.JOIN tatsächlich einen Vorteil gegenüber der Verwendung von Where bietet?

Vielen Dank

T.
 
Hi

die zwei Varianten sind gleich, es geht nur darum was man lieber hat bzw. verständlicher findet.

Es gibt allerdings auch andere Joins außer den InnerJoin, deren Wirkung mit der join-losen Schreibweise nicht bzw. nur umständlich erreicht werden kann: Left, Right, und Full Join. Der Unterschied ist, dass auch bestimmte Tabellenzeilen, die in der anderen Tabelle nichts dazupassendes haben, ausgegeben werden.
 
Zurück