MySQL JOIN-Abfragen ohne ON-Bedingungen
In MySQL erfordern JOIN-Abfragen nicht unbedingt eine ON-Bedingung. Dies unterscheidet sich vom ANSI-Standard und vielen anderen Datenbanken.
Cross Join
Ohne eine ON-Bedingung wird ein JOIN als Cross Join interpretiert. Diese Operation erzeugt ein kartesisches Produkt, was zu einer Reihe von Datensätzen führt, die alle möglichen Kombinationen von Zeilen aus den verbundenen Tabellen enthalten. Beispielsweise würde ein Cross-Join zwischen zwei Tabellen mit 3 bzw. 4 Zeilen 12 Zeilen generieren.
Cross Join explizit verwenden
Es wird empfohlen, CROSS JOIN zu verwenden Schlüsselwort beim expliziten Durchführen eines Cross-Joins aus Gründen der Übersichtlichkeit:
SELECT * FROM A CROSS JOIN B;
INNER JOIN vs. Cross Join
Das Fehlen einer ON-Bedingung in einer JOIN-Abfrage macht sie effektiv zu einem INNER JOIN ohne Bedingungen. Dies kann nützlich sein, um alle übereinstimmenden Zeilen zwischen Tabellen zu finden, ähnlich einem INNER JOIN.
Linke und rechte äußere Verknüpfungen
Für LEFT- und RIGHT OUTER JOINs das ON Die Bedingung ist obligatorisch, da diese Arten von Joins eine bestimmte Bedingung für den Zeilenabgleich erfordern. Daher ist das Fehlen einer EIN-Bedingung für sie nicht relevant.
Das obige ist der detaillierte Inhalt vonWas passiert in MySQL JOIN-Abfragen, wenn die ON-Bedingung weggelassen wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!