Ist es möglich, eine Join-Abfrage ohne ON
Anweisung zu schreiben ? und wie wirken sich diese schließt sich unterscheiden LEFT JOIN, RIGHT JOIN
funktioniert.
mysql
join
left-join
inner-join
right-join
Alexander T.
quelle
quelle
ON
Klausel dem Server mitteilt, wie die Tabellen zusammenhängen, nein. Wenn Ihre verschiedenen Join-Typen alle das gleiche Ergebnis liefern, machen Sie es irgendwie falsch, und das Hinzufügen von Code kann uns helfen, Ihr Problem zu erkennen. In der Zwischenzeit besuchen Sie Jeff Atwoods Blog, um eine zweiminütige Einführung in die verschiedenen Join-Typen zu erhalten.Antworten:
Die MySQL- Dokumentation behandelt dieses Thema.
Hier ist eine Zusammenfassung. Bei Verwendung von
join
oderinner join
ist dieon
Bedingung optional. Dies unterscheidet sich vom ANSI-Standard und von fast jeder anderen Datenbank. Der Effekt ist across join
. Ebenso können Sie eineon
Klausel mit verwendencross join
, die sich auch von Standard-SQL unterscheidet.Durch eine Kreuzverknüpfung wird ein kartesisches Produkt erstellt, dh jede mögliche Kombination aus 1 Zeile aus der ersten Tabelle und 1 Zeile aus der zweiten. Die Kreuzverknüpfung für eine Tabelle mit drei Zeilen ('a', 'b' und 'c') und eine Tabelle mit vier Zeilen (z. B. 1, 2, 3, 4) hätte 12 Zeilen.
Wenn Sie in der Praxis einen Cross-Join durchführen möchten, verwenden Sie
cross join
:ist viel besser als:
und:
Die
on
Klausel ist für einen rechten oder linken äußeren Join erforderlich, daher ist die Diskussion für sie nicht relevant.Wenn Sie die verschiedenen Arten von Verknüpfungen verstehen müssen, müssen Sie sich mit relationalen Datenbanken befassen. Stackoverflow ist kein geeigneter Ort für diese Diskussionsebene.
quelle
Ein Beispiel finden Sie unter http://www.sitepoint.com/understanding-sql-joins-mysql-database/
Sie können 'USING' anstelle von 'ON' wie in der Abfrage verwenden
quelle
Möglicherweise möchten Sie auch die Verwendung von UNION untersuchen, bei der mehrere Tabellen für eine Ausgabe kombiniert werden: SQL - Kombinieren Sie zwei Tabellen für eine Ausgabe
quelle