CROSS JOIN 關鍵字 (SQL CROSS JOIN Keyword) - 交叉連接

交叉連接為兩個資料表間的笛卡兒乘積 (Cartesian product),兩個資料表在結合時,不指定任何條件,即將兩個資料表中所有的可能排列組合出來,以下例而言 CROSS JOIN 出來的結果資料列數為 3×5=15 筆,因此,當有 WHERE、ON、USING 條件時不建議使用。

CROSS JOIN 語法 (SQL CROSS JOIN Syntax)

SELECT table_column1, table_column2...
FROM table_name1
CROSS JOIN table_name2;

或這樣寫:

SELECT table_column1, table_column2...
FROM table_name1, table_name2;

或這樣寫:

SELECT table_column1, table_column2...
FROM table_name1
JOIN table_name2;

CROSS JOIN 查詢用法 (Example)

這是一個客戶資料表 customers:

C_IdNameCityAddressPhone
1張一台北市XX路100號02-12345678
2王二新竹縣YY路200號03-12345678
3李三高雄縣ZZ路300號07-12345678

而這是產品訂單的資料表 orders:

O_IdOrder_NoC_Id
125723
273753
375201
410541
512575

我們來作一個 CROSS JOIN 查詢:

SELECT customers.Name, orders.Order_No
FROM customers
CROSS JOIN orders;

查詢結果如下:

NameOrder_No
張一2572
王二2572
李三2572
張一7375
王二7375
李三7375
張一7520
王二7520
李三7520
張一1054
王二1054
李三1054
張一1257
王二1257
李三1257