MySQL CROSS JOIN 關鍵字
SQL CROSS JOIN 關鍵字
CROSS JOIN
關鍵字返回兩個表(table1 和 table2)的所有記錄。
CROSS JOIN 語法
SELECT column_name(s)
FROM table1
CROSS JOIN table2;
注意:CROSS JOIN
可能會返回非常大的結果集!
演示資料庫
在本教程中,我們將使用著名的 Northwind 示例資料庫。
以下是“Customers”表中的一部分資料:
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 |
以及 "Orders" 表中的一個選擇
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 示例
以下 SQL 語句選擇所有客戶和所有訂單
注意:CROSS JOIN
關鍵字返回兩個表中的所有匹配記錄,無論另一個表是否匹配。因此,如果“Customers”中有不匹配“Orders”的行,或者“Orders”中有不匹配“Customers”的行,這些行也會被列出。
如果新增 WHERE
子句(如果 table1 和 table2 有關係),CROSS JOIN
將產生與 INNER JOIN
子句相同的結果。
示例
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders
WHERE Customers.CustomerID=Orders.CustomerID;
自己動手試一試 »