MySQL CROSS JOIN- Schlüsselwort
SQL CROSS JOIN-Schlüsselwort
Das CROSS JOIN
Schlüsselwort gibt alle Datensätze aus beiden Tabellen (Tabelle1 und Tabelle2) zurück.
CROSS JOIN-Syntax
SELECT column_name(s)
FROM table1
CROSS JOIN table2;
Hinweis: CROSS JOIN
Kann möglicherweise sehr große Ergebnismengen zurückgeben!
Demo-Datenbank
In diesem Tutorial verwenden wir die bekannte Northwind-Beispieldatenbank.
Nachfolgend eine Auswahl aus der Tabelle „Kunden“:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
Und eine Auswahl aus der Tabelle „Bestellungen“:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
MySQL CROSS JOIN-Beispiel
Die folgende SQL-Anweisung wählt alle Kunden und alle Bestellungen aus:
Beispiel
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders;
Hinweis: Das CROSS JOIN
Schlüsselwort gibt alle übereinstimmenden Datensätze aus beiden Tabellen zurück, unabhängig davon, ob die andere Tabelle übereinstimmt oder nicht. Wenn es also Zeilen in „Kunden“ gibt, die keine Übereinstimmungen in „Bestellungen“ haben, oder wenn es Zeilen in „Bestellungen“ gibt, die keine Übereinstimmungen in „Kunden“ haben, werden diese Zeilen ebenfalls aufgelistet.
Wenn Sie eine WHERE
Klausel hinzufügen (wenn Tabelle1 und Tabelle2 eine Beziehung haben), CROSS JOIN
wird das gleiche Ergebnis wie die INNER JOIN
Klausel erzeugt:
Beispiel
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders
WHERE Customers.CustomerID=Orders.CustomerID;