MySQL CROSS JOIN Sleutelwoord
SQL CROSS JOIN Sleutelwoord
Die CROSS JOIN
sleutelwoord gee alle rekords van beide tabelle (tabel1 en tabel2) terug.
KRUISSLUIT Sintaksis
SELECT column_name(s)
FROM table1
CROSS JOIN table2;
Let wel: CROSS JOIN
kan moontlik baie groot resultate-stelle lewer!
Demo databasis
In hierdie tutoriaal sal ons die bekende Northwind-voorbeelddatabasis gebruik.
Hieronder is 'n keuse uit die "Klante"-tabel:
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 'n keuse uit die "Bestellings" tabel:
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 Voorbeeld
Die volgende SQL-stelling kies alle kliënte en alle bestellings:
Voorbeeld
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders;
Let wel: Die CROSS JOIN
sleutelwoord gee alle ooreenstemmende rekords van beide tabelle terug, of die ander tabel pas of nie. Dus, as daar rye in "Klante" is wat nie passings in "Bestellings" het nie, of as daar rye in "Bestellings" is wat nie passings in "Klante" het nie, sal daardie rye ook gelys word.
As jy 'n WHERE
klousule byvoeg (as tabel1 en tabel2 'n verwantskap het), CROSS JOIN
sal dit dieselfde resultaat as die INNER JOIN
klousule lewer:
Voorbeeld
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders
WHERE Customers.CustomerID=Orders.CustomerID;