2013-11-12 2 views
0

Я собираюсь переместить данные опций продукта в новые более эффективные таблицы.MYSQL - варианты варианта возврата продукта

Я создал новые таблицы:

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 

Values:

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 

Но ставить их в таблицу значений varient мне действительно нужно только сгруппировать их вместе, как:

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" 

Но я не знаю, как создать запрос, чтобы дать мне все комбинации ..

ответ

0

Вам необходимо:

Products: ID /ProductName 

Options: ID/Option_Text 

Values: ID/Options_ID/Value_text 

Product_option: ProductID/OptionID/ValueID 
+0

Thi s не работает, потому что 1: параметры привязаны к продукту и не являются глобальными. 2: Существуют разные цены для КАЖДОГО варианта. Столь крупная стоит больше, чем небольшая. –

 Смежные вопросы

  • Нет связанных вопросов^_^