Also habe ich die letzte Stunde durch das Internet geschaut, die endgültige Antwort auf diese einfache Frage gelesen und gesucht.
Was ist der Standard-JOIN in MySQL?
SELECT * FROM t1 JOIN t2
Ist das das Gleiche wie
SELECT * FROM t1, t2
OR
SELECT * FROM t1 INNER JOIN t2
Auch eine verwandte Frage, wenn Sie "WHERE" -Klauseln verwenden, ist dies mit JOIN oder INNER JOIN identisch?
Im Moment denke ich, dass ein eigenständiger JOIN identisch ist mit der Verwendung von Kommas und WHERE-Klauseln.
In MySQL schreibt JOIN
unqualifiziert INNER JOIN
. In anderen Worten ist die Variable INNER
in INNER JOIN
optional. INNER
und CROSS
sind Synonyme in MySQL. Zur Verdeutlichung schreibe ich JOIN
oder INNER JOIN
, wenn ich eine Join-Bedingung habe, und CROSS JOIN
, wenn ich keine Bedingung habe.
Die zulässige Syntax für Joins ist in der Dokumentation beschrieben.
Im Moment denke ich, dass ein Stand-Alone-JOIN nichts anderes ist als die Verwendung von Kommas und WHERE-Klauseln.
Der Effekt ist derselbe, aber die Geschichte dahinter ist anders. Die Kommasyntax entspricht dem ANSI-89-Standard. Es gibt jedoch eine Reihe von Problemen mit dieser Syntax. Daher wurde im ANSI-92-Standard das Schlüsselwort JOIN eingeführt.
Ich würde dringend empfehlen, dass Sie always anstelle des Kommas die JOIN-Syntax verwenden.
T1 JOIN T2 ON ...
ist besser lesbar als T1, T2 WHERE ...
.Diese sind alle gleichwertig und auch gleich CROSS JOIN
.
Es gibt einige Unterschiede zwischen der Verwendung von Kommas und [INNER | CROSS] JOIN
-Syntax, was beim Zusammenfügen mehrerer Tabellen wichtig sein kann. Alles, was Sie wissen müssen, ist hier in der MySQL JOIN
-Dokumentation beschrieben.