私はショップのWebサイトを開発しています。私は、製品(サイズ、色など)に適用されるさまざまなオプションを表しProductOptionは、データベーステーブルを持っている:SQLで可能なすべてのデータの組み合わせを生成する方法は?
ProductOptionId
ProductOptionGroupId
ProductId
Value
(私は簡潔にするためにこれを簡略化しました)
ProductOptionGroupIdリンクProductOptionGroupテーブルに追加します。グループはサイズ、色など、および値は、よく、値です - ブラック、レッド、大、小など
私が制限された、製品オプションのすべての可能な組み合わせを生成する必要がありますグループごとに、データベース内の各製品ごとに表示されます。私は、次の示すデータを生成する必要があるだろう
ProductOptionId, ProductOptionGroupId, Value
1, 1, Red
2, 1, Black
3, 1, Green
4, 2, Large
5, 2, Small
6, 3, Long
7, 3, Short
:生成物1(グループ1 =カラー、2 =サイズと3 =長さ)については、次のデータ想像
Red, Large, Long
Black, Large, Long
Green, Large, Long
Red, Small, Long
Black, Small, Long
Green, Small, Long
Red, Large, Short
Black, Large, Short
Green, Large, Short
Red, Small, Short
Black, Small, Short
Green, Small, Short
を..グループ内のすべての可能な組み合わせ。
各製品には、任意の数のグループと任意の数の製品オプションがあります。事前にProductIdのみを知っている(つまり、この製品のすべての商品オプションの組み合わせを教えてください)ことによって結果を生成できる必要があります。
SQL Server 2005を使用してこれをどのように達成できますか?
おかげ
3つの列として結果が必要ですか? –
特に指定しません。私はちょうど与えられた製品のすべての製品オプションの組み合わせを返すいくつかの方法が必要です。オプションごとに1行は問題ありませんが、組み合わせをグループ化する必要があります。 –
クロス・ジョインを使用 – Andrew