【发布时间】:2011-06-27 19:50:13
【问题描述】:
我有以下产品数据(用于在线商店):
ProductId ProductOptionGroupId ProductOptionId
26 1 13
26 1 12
44 1 22
44 1 23
44 2 20
44 2 21
44 3 25
44 3 24
ProductOptionGroup 是(比如说)“Size”或“Color”,ProductOption 是(比如说)“Large”、“Extra Large”和“Red”、“Black”等。
基本上,我想为每种产品找到所有可能的产品选项组合。例如,对于产品 44,我想要:
22, 20, 25 (Large, Black, Cotton)
22, 20, 24 (Large, Black, Nylon)
22, 21, 25 (Large, Red, Cotton)
22, 21, 24 (Large, Red, Nylon)
23, 20, 25 (Extra Large, Black, Cotton)
23, 20, 24 etc...
23, 21, 25
23, 21, 24
每一行的每个产品选项组中只有一个产品选项。 IE。大号和特大号是互斥的。
理想情况下,我希望将这些值连接到每个产品的单个 VARCHAR 中(“22,21,25”等)。
如何在 SQL Server 2005 中实现这一点?
谢谢
【问题讨论】:
-
Cross join 也许?
-
与您之前的问题重复,包含三个答案,您接受了其中一个。 How to generate all possible data combinations in SQL?
-
啊。在寻找可能的解决方案时,我不知何故错过了这一点(我完全忘记了我之前曾问过这个问题)。可以说,我从来没有让它工作。要求也略有不同。