MYSQL-返回产品选项变体
我正在将产品选项数据移动到新的更高效的表中 我已经创建了新表:MYSQL-返回产品选项变体,mysql,select,product,variants,Mysql,Select,Product,Variants,我正在将产品选项数据移动到新的更高效的表中 我已经创建了新表: Options: ID / Product_ID / Option_Text Values: ID / Options_ID / Value_text 我把所有遗留选项都放在这些表中。我最大的障碍是为变量表创建数据: Variants: ID / Product_ID / Price / SKU Variant_Values: ID / Options_ID / Variants_ID 对于新产品,使用数组
Options: ID / Product_ID / Option_Text
Values: ID / Options_ID / Value_text
我把所有遗留选项都放在这些表中。我最大的障碍是为变量表创建数据:
Variants: ID / Product_ID / Price / SKU
Variant_Values: ID / Options_ID / Variants_ID
对于新产品,使用数组和笛卡尔坐标在Javascript中很容易做到这一点。但我希望使用MYSQL来移动数据。它不必是高效的,因为我将运行这个脚本一次
假设我有以下数据:
选项:
36 | 100 | Color
37 | 100 | Size
38 | 100 | Logo
价值观:
72 | 36 | Blue
73 | 36 | Red
74 | 37 | Large
75 | 37 | Med
76 | 37 | Small
77 | 38 | Shark
78 | 38 | Unicorn
因此,在新的变量值表中,我需要组合所有选项,如:
BLUE - LARGE - SHARK
BLUE - LARGE - UNICORN
BLUE - MED - SHARK
但要将它们放入变量值表中,我只需要将它们组合在一起,如:
72 | 1
74 | 1
77 | 1
72 | 2
74 | 2
78 | 2
72 | 3
75 | 3
77 | 3
那么,我是否可以运行一个查询来提供最终的表
如果我运行以下操作:
SELECT (v.id), v.`Value_text`, o.`Option_Text`
FROM `Values` AS v
JOIN `Options` AS o ON o.`id` = v.`Options_ID ` AND o.`Product_ID` = 162961
GROUP BY o.`id`;
"72" "Blue" "Color"
"74" "Large" "Size"
"77" "Shark" "Logo"
我得到的结果是:
SELECT (v.id), v.`Value_text`, o.`Option_Text`
FROM `Values` AS v
JOIN `Options` AS o ON o.`id` = v.`Options_ID ` AND o.`Product_ID` = 162961
GROUP BY o.`id`;
"72" "Blue" "Color"
"74" "Large" "Size"
"77" "Shark" "Logo"
但是我不知道如何创建一个查询来提供所有的组合 您需要:
Products: ID / ProductName
Options: ID / Option_Text
Values: ID / Options_ID / Value_text
Product_option: ProductID / OptionID / ValueID
这不起作用,因为1:选项与产品相关,不是全局的。2:每种型号都有不同的价格。因此,大的成本比小的成本高。