Was ist ein Cross Join in SQL? Verstehen Sie die Grundlagen
Ein Cross-Join abfragen gibt das kartesische Produkt der Zeilen aus den Tabellen im Join zurück. Dies ist das Ergebnis der Kombination jeder Zeile aus einer Tabelle mit jeder Zeile der zweiten Tabelle.
Wozu wird Cross Join verwendet?
Sie würden eine Kreuzverknüpfung verwenden, um alle möglichen Kombinationen der Zeilen einer Tabelle zusammen mit den Daten aus allen Zeilen einer zweiten Tabelle anzuzeigen. Stellen Sie sich vor, Sie möchten eine Liste aller verschiedenen Tesla SUV-Modelle in allen Farben sehen? Um Ihre Entscheidung zu treffen, müssen Sie sich alle Kombinationen vorstellen können, für die eine Liste hilfreich sein könnte. Da die Anzahl der SUV-Modelle als Farben gering ist, ist die Ergebnismenge nicht allzu groß. Normalerweise hätten Sie bereits eine Präferenz für die Farbe oder das Modell, so dass Sie eine häufigere Verknüpfungsoperation verwenden würden, die eine Verknüpfungsbedingung angibt, was zu einer kleineren Ergebnismenge führt.
Was ist der Unterschied zwischen Union und Cross Join?
Die Kreuzverknüpfung gibt jede Kombination von Zeilen zweier Tabellen in zwei Spalten zurück, wobei jede Kombination nebeneinander angezeigt wird. Eine Vereinigung gibt die gleiche Anzahl von Zeilen in einer einzigen Spalte zurück und eliminiert Duplikate.
Säule 1. Säule 2
MODELL X schwarz
MODELL Y schwarz
MODELL X weiß
MODELL Y weiß
Das Ergebnis mit einer UNION sieht dann so aus:
Säule 1
MODELL X
MODELL Y
Schwarz
Weiß
Was ist der Unterschied zwischen Cross Join und Inner Join?
Ein innerer Join gleicht alle Datensätze zwischen Tabellen ab, gibt aber nur übereinstimmende Werte zurück. Es handelt sich um die Schnittmenge zweier Tabellen. Bei der Kreuzverknüpfung werden alle Zeilen beider Tabellen angezeigt.
Cross Join in der SQL-Syntax
Es gibt zwei Varianten der SQL-Syntax für Cross-Join, eine mit und eine ohne Komma. Nachstehend finden Sie Beispiele für beide.
Die übliche Syntax lautet: SELECT * FROM [Tabelle1] CROSS JOIN [Tabelle2] ; Die Kommaversion der gleichen Anweisung lautet: SELECT * FROM [Tabelle1], [Tabelle2] ;
Eine Join-Bedingung ist nicht erforderlich, da alle Zeilen zurückgegeben werden.
Beispiel
In diesem Beispiel werden wir zwei Tabellen verwenden, von denen eine die Tesla SUV-Modelle enthält (siehe unten):
TABELLE: Tesla-SUV-Modelle
Spalten: Modelle
Werte:
MODELL X
MODELL Y
Die zweite Tabelle enthält Autofarben wie unten:
TABELLE: Tesla-Farben
Spalten: Farben
Werte:
Schwarz
Weiß
Im Folgenden finden Sie eine Beispiel-SQL-Anweisung für einen Cross-Join:
SELECT * FROM Tesla-SUV-Modelle CROSS JOIN Tesla-Farben;
Die Ergebnisse werden wie folgt aussehen:
Modelle Farben
MODELL X schwarz
MODELL Y schwarz
MODELL X weiß
MODELL Y weiß
Wie Sie sehen können, ergab die abfragen alle möglichen Kombinationen der Spalten aus beiden Tabellen.
Verwendung von Kreuzverbindungen
Die Kreuzverknüpfung gilt als eine sehr teure Anweisung in Bezug auf die Datennutzung, da sie das Produkt der zu verknüpfenden Tabellen zurückgibt. Wenn die erste Tabelle 100 Zeilen und die zweite 1000 Zeilen enthält, gibt die resultierende abfragen 100 x 1000 Zeilen zurück, also 100.000 Zeilen.
Im SQL Server-Dokument heißt es: "Dies ist ein potenziell teurer und gefährlicher Vorgang, da er zu einer großen Datenexplosion führen kann. Er wird am besten in Szenarien verwendet, in denen ein normaler Join nicht verwendet werden kann und sehr selektive Prädikate in der WHERE-Klausel verwendet werden, um die Anzahl der erzeugten Zeilen zu begrenzen."
A more format definition of the operation can be described as follows; The Cartesian Product is a multiplication operation in set theory that generates all ordered pairs of the given sets. If A is a set and elements are {a,b} and B is a set with elements {1,2,3}. The Cartesian Product of these two A and B is denoted A x B, and the result will be as follows:
AxB ={(a,1), (a,2), (a,3), (b,1), (b,2), (b,3)}
Viele kostenbasierte abfragen und BI-Tools kennzeichnen die abfragen als teuer in der Ausführung und geben einen Fehler direkt am Anfang der Ergebnismenge als Vorschau mit einer Warnung zurück. Wenn sich die Daten nicht oft ändern, sind die Tabellen groß genug, dass der DBA eine materialisierte Ansicht der Daten erstellen kann, die automatisch aktualisiert wird, wenn sich Daten ändern.
Actian und die Data Intelligence Plattform
Die Actian Data Intelligence Platform wurde speziell dafür entwickelt, Unternehmen bei der Vereinheitlichung, verwalten und dem Verständnis ihrer Daten in hybriden Umgebungen zu unterstützen. Sie vereint Metadaten , Governance, Lineage, Qualitätsüberwachung und Automatisierung in einer einzigen Plattform. So können Teams sehen, woher die Daten kommen, wie sie verwendet werden und ob sie internen und externen Anforderungen entsprechen.
Durch seine zentrale Schnittstelle unterstützt Actian Erkenntnis über Datenstrukturen und -flüsse und erleichtert so die Anwendung von Richtlinien, die Lösung von Problemen und die abteilungsübergreifende Zusammenarbeit. Die Plattform hilft auch dabei, Daten mit dem geschäftlichen Kontext zu verbinden, damit Teams Daten effektiver und verantwortungsvoller nutzen können. Die Plattform von Actian ist so konzipiert, dass sie mit sich entwickelnden Datenökosystemen skaliert und eine konsistente, intelligente und sichere Datennutzung im gesamten Unternehmen unterstützt. Fordern Sie Ihr persönliches Demo an.