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;

FULL JOIN 查詢實例 (Example)

這是一個客戶資料表「customers」:
C_Id Name City Address Phone
1 張一 台北市 XX路100號 02-12345678
2 王二 新竹縣 YY路200號 03-12345678
3 李三 高雄縣 ZZ路300號 07-12345678

而這是產品訂單的資料表「orders」:
O_Id Order_No C_Id
1 2572 3
2 7375 3
3 7520 1
4 1054 1
5 1257 5

我們來作一個 CROSS JOIN 查詢:
SELECT customers.Name, orders.Order_No
FROM customers
CROSS JOIN orders;

查詢結果如下:
Name Order_No
張一 2572
王二 2572
李三 2572
張一 7375
王二 7375
李三 7375
張一 7520
王二 7520
李三 7520
張一 1054
王二 1054
李三 1054
張一 1257
王二 1257
李三 1257