MySQL CROSS JOIN- trefwoord
SQL CROSS JOIN-sleutelwoord
Het CROSS JOIN
sleutelwoord retourneert alle records van beide tabellen (tabel1 en tabel2).
CROSS JOIN-syntaxis
SELECT column_name(s)
FROM table1
CROSS JOIN table2;
Opmerking: CROSS JOIN
kan mogelijk zeer grote resultaatsets retourneren!
Demodatabase
In deze tutorial gebruiken we de bekende Northwind-voorbeelddatabase.
Hieronder vindt u een selectie uit de tabel "Klanten":
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 |
En een selectie uit de tabel "Bestellingen":
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 |
Voorbeeld van MySQL CROSS JOIN
De volgende SQL-instructie selecteert alle klanten en alle bestellingen:
Voorbeeld
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders;
Opmerking: Het CROSS JOIN
sleutelwoord retourneert alle overeenkomende records uit beide tabellen, ongeacht of de andere tabel overeenkomt of niet. Dus als er rijen zijn in "Klanten" die geen overeenkomsten hebben in "Bestellingen", of als er rijen in "Bestellingen" zijn die geen overeenkomsten hebben in "Klanten", worden die rijen ook weergegeven.
Als u een WHERE
clausule toevoegt (als tabel1 en tabel2 een relatie hebben), CROSS JOIN
zal dit hetzelfde resultaat opleveren als de INNER JOIN
clausule:
Voorbeeld
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders
WHERE Customers.CustomerID=Orders.CustomerID;