Cross Join (SQL)

Aus Byte-Welt Wiki
Version vom 5. November 2021, 07:15 Uhr von MarkusRost (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Der Cross Join ist der standard Join, hier wird aus alle Einträgen der beiden Mengen ( Tabellen) das Kreuzprodukt gebildet. Das Ergebnis des Join muss vom Benutzer selbst gefilter/begrenzt werden.

Syntax

Der Cross Join kann auf verschiedene Arten gemacht werden, einmal mit und einmal ohne den Schlüsselwörtern CROSS JOIN.

SELECT * FROM tabelle1 CROSS JOIN tabelle2;
SELECT * FROM tabelle1, tabelle2;

Beispiel

Tabelle 1 - Personentabelle:

Person_ID Name Ort_ID
1 person1 1
2 person2 1
3 person3 2

Tabelle 2 - Ortstabelle:

Ort_ID Ortsname
1 Berlin
2 Hamburg
3 München

Bei Bildung des Cross Joins über die beiden Tabellen ergibt sich folgendes Bild.

SELECT * FROM personentabelle CROSS JOIN ortstabelle;

Personentabelle <math>\times</math> Ortstabelle

Person_ID Name Ort_ID Ort_ID Ortsname
1 person1 1 1 Berlin
2 person2 1 1 Berlin
3 person3 2 1 Berlin
1 person1 1 2 Hamburg
2 person2 1 2 Hamburg
3 person3 2 2 Hamburg
1 person1 1 3 München
2 person2 1 3 München
3 person3 2 3 München