Từ khóa CROSS JOIN của MySQL
Từ khóa CROSS JOIN trong SQL
Từ khóa CROSS JOIN
trả về tất cả các bản ghi từ cả hai bảng (table1 và table2).
Cú pháp CROSS THAM GIA
SELECT column_name(s)
FROM table1
CROSS JOIN table2 ;
Lưu ý: CROSS JOIN
có khả năng trả về các tập kết quả rất lớn!
Cơ sở dữ liệu demo
Trong hướng dẫn này, chúng tôi sẽ sử dụng cơ sở dữ liệu mẫu Northwind nổi tiếng.
Dưới đây là lựa chọn từ bảng "Khách hàng":
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 |
Và một lựa chọn từ bảng "Đơn hàng":
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 |
Ví dụ THAM GIA CROSS của MySQL
Câu lệnh SQL sau đây chọn tất cả khách hàng và tất cả đơn đặt hàng:
Ví dụ
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders;
Hãy tự mình thử » Lưu ý: Từ khóa CROSS JOIN
trả về tất cả các bản ghi khớp từ cả hai bảng cho dù bảng kia có khớp hay không. Vì vậy, nếu có các hàng trong "Khách hàng" không khớp trong "Đơn hàng" hoặc nếu có các hàng trong "Đơn hàng" không khớp trong "Khách hàng" thì các hàng đó cũng sẽ được liệt kê.
Nếu bạn thêm mệnh đề WHERE
(nếu bảng1 và bảng2 có mối quan hệ), thì CROSS JOIN
sẽ tạo ra kết quả tương tự như mệnh đề INNER JOIN
:
Ví dụ
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders
WHERE Customers.CustomerID=Orders.CustomerID;
Hãy tự mình thử »