我不确定这是否是正确的方式来做到这一点,但我会解释情况。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
你能发表一个数据的例子和想要的结果的例子吗? –