これが正しい方法であるかどうかわかりませんが、状況を説明します。左結合が満たされないとSQL - クロス結合
私は2つのテーブルを持っています。最初のテーブルは製品のリストであり、2番目のテーブルはチャネルのリストです。結合条件が満たされている場合は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 DBで作業しています。
ガイダンスは非常に高く評価されます。
あなたはどのようなDBMSを使用していますか? –
それ以外の場合は、CHANNELテーブルのすべてのチャンネルの行を爆発させたいのですが - それはどういう意味ですか? – TheUknown
データの例と希望の結果の例を投稿できますか? –