Unterschied zwischen cross-Produkt-und natura-beitreten
Ich war das Studium der natural join und ich war verwirrt, dass beim schreiben in SQL, wie würde ich wissen, ob ich verwenden soll Kreuz Produkt oder natural join.
Hinweis: die mysql-tag ist unangemessen. Diese Frage hat nichts zu tun mit einer bestimmten RDBMS
Ich befestigte den tags
sqlfiddle.com/#!15/223f7/1
Ich befestigte den tags
sqlfiddle.com/#!15/223f7/1
InformationsquelleAutor AamKhayega | 2014-10-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
CROSS JOIN
erzeugt alle möglichen Kombinationen der Zeilen aus zwei Tabellen, ob Sie übereinstimmen oder nicht. Sie verwenden keine join-Bedingung für ein Kreuzprodukt, da wäre die Bedingung immer true für jedes pairing.Beispiel für die Verwendung von
CROSS JOIN
: Sie haben die Tabellen von ShoeColors und ShoeSizes, und Sie wollen wissen, wie viele mögliche Kombinationen es gibt.SELECT COUNT(*) FROM ShoeColors CROSS JOIN ShoeSizes;
NATURAL JOIN
ist wie einINNER JOIN
, aber es setzt die Bedingung der Gleichheit und der gilt für alle Spalten-Namen in den beiden Tabellen. Ich benutze nieNATURAL JOIN
, denn ich kann nicht davon ausgehen, dass, nur weil die Spalten haben die gleichen Namen, die Sie beziehen sollten. Das wäre eine sehr strenge Spalte Namenskonvention, und praktisch keine real-world-Projekt hat eine solche Disziplin.InformationsquelleAutor Bill Karwin