我不確定這是否是正確的方式來做到這一點,但我會解釋情況。SQL - 交叉加入時不加入左連接
我有兩個表,第一個表是產品列表,第二個表是通道列表。如果連接條件滿足,我想要執行LEFT JOIN,否則我想爲CHANNEL表中的每個通道分解行。我已閱讀了有關CROSS JOIN的內容,但並不確定這是否可行。
SELECT P.PRODUCT_ID, C.CHANNEL, C.REGION, C.COUNTRY, C.LANGUAGE FROM PRODUCT P LEFT JOIN CHANNEL C ON C.CHANNEL = P.CHANNEL;
產品表
Product_ID | Product_Name | Channel
------------------------------------
12345678 | Product1 | Ecommerce
87654321 | Product2 |
14785236 | Product3 | Outlet
頻道表
CHANNEL | REGION | COUNTRY | LANGUAGE
--------------------------------------
Ecommerce | Americas | Canada | EN
Ecommerce | Americas | Canada | FR
Outlet | Americas | Canada | EN
Outlet | Americas | Canada | FR
[...]
我期待這樣的輸出:
PRODUCT_ID | CHANNEL | REGION | COUNTRY | LANGUAGE
---------------------------------------------------
12345678 | Ecommerce | Americas | Canada | EN
12345678 | Ecommerce | Americas | Canada | FR
87654321 | Ecommerce | Americas | Canada | EN
87654321 | Ecommerce | Americas | Canada | FR
87654321 | Outlet | Americas | Canada | EN
87654321 | Outlet | Americas | Canada | FR
[...]
14785236 | Outlet | Americas | Canada | EN
14785236 | Outlet | Americas | Canada | FR
我正在Oracle數據庫中工作。
指導將非常讚賞這一點。
您正在使用什麼數據庫管理系統? –
'否則我想爲CHANNEL表中的每個通道分解行 - - 這是什麼意思? – TheUknown
你能發表一個數據的例子和想要的結果的例子嗎? –