MySQL CROSS JOIN Anahtar Kelimesi
SQL CROSS JOIN Anahtar Kelimesi
Anahtar CROSS JOIN
kelime, her iki tablodaki (tablo1 ve tablo2) tüm kayıtları döndürür.
CROSS JOIN Sözdizimi
SELECT column_name(s)
FROM table1
CROSS JOIN table2;
Not: CROSS JOIN
potansiyel olarak çok büyük sonuç kümeleri döndürebilir!
Demo Veritabanı
Bu eğitimde, iyi bilinen Northwind örnek veritabanını kullanacağız.
Aşağıda "Müşteriler" tablosundan bir seçim bulunmaktadır:
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 |
Ve "Siparişler" tablosundan bir seçim:
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 Örneği
Aşağıdaki SQL ifadesi tüm müşterileri ve tüm siparişleri seçer:
Örnek
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders;
Not: Anahtar CROSS JOIN
sözcük, diğer tablo eşleşsin veya eşleşmesin, her iki tablodaki tüm eşleşen kayıtları döndürür. Dolayısıyla, "Müşteriler"de "Siparişler"de eşleşmeyen satırlar varsa veya "Siparişler"de "Müşteriler"de eşleşmeyen satırlar varsa, bu satırlar da listelenecektir.
Bir yan tümce eklerseniz WHERE
(tablo1 ve tablo2'nin bir ilişkisi varsa), yan tümce CROSS JOIN
ile aynı sonucu verir INNER JOIN
:
Örnek
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders
WHERE Customers.CustomerID=Orders.CustomerID;