Страница 1 из 1
Составление SQL-запроса для PrestaShop
Добавлено: 17 сен 2014 14:07
automaton
Хотелось бы проконсультироваться по услуге "Составление SQL запроса для обновления сайта по инд. алгоритму" перед оплатой.
Задача: обновлять таблицы ps_product_tag (id_product, id_tag) и ps_tag (id_tag, id_lang, name) на основе характеристик товаров из базы Content Creator при экспорте хар-к для фильтрации в PrestaShop по HTTP Tunnel.
Цель: внесение данных в поле "метка" для объединения и вывода товаров из одной серии на товарной странице.
Скажите, достаточно ли этих данных для заказа услуги "Составление SQL запроса для обновления сайта по инд. алгоритму" или требуются уточнения? Сколько в среднем требуется времени на исполнение данной услуги?
Re: Составление SQL-запроса для PrestaShop
Добавлено: 17 сен 2014 15:29
TechAdmin
Приведите пример характеристик и значений для 1го товара, которые вы хотите выводить в тегах и в каком виде будет выглядеть значение тега.
Re: Составление SQL-запроса для PrestaShop
Добавлено: 17 сен 2014 15:54
automaton
Работать нужно только с характеристикой "Серия" и значениями в ней.
Товар: ID 388
Характеристика: Серия
Значение характеристики: Аква
В таблице ps_product_tag для поля id_product должно быть записано значение 388, id_tag должно иметь значение 1, а в таблице ps_tag — id_tag значение 1, id_lang — всегда 1, name — Аква.
У всех прочих товаров с характеристикой "Серия" и значением "Аква" значения будут совпадать, кроме ID, которое соответствует ID-товара.
Второй товар с характеристикой "Серия" и значением "Аква":
Товар: ID 389
Характеристика: Серия
Значение характеристики: Аква
В таблице id_product должно попасть значение 389, id_tag значение 1, а в таблице ps_tag — id_tag значение 1, id_lang — всегда 1, name — Аква.
Товар с той же характеристикой, но иным значением:
Товар: ID 400
Характеристика: Серия
Значение характеристики: Алгол
В таблице id_product должно попасть значение 400, id_tag значение 2, а в таблице ps_tag — id_tag значение 2, id_lang — всегда 1, name — Алгол.
Re: Составление SQL-запроса для PrestaShop
Добавлено: 17 сен 2014 16:48
TechAdmin
Будет всего 2 SQL запроса, по срокам в течении 1-2 рабочего дня.
Re: Составление SQL-запроса для PrestaShop
Добавлено: 19 сен 2014 10:22
automaton
Мы внесли оплату за составление двух запросов, но нет понимания что делать дальше — на почту пришло письмо с формой для ввода серийников PLI / CC. Какие требуются дальнейшие действия с нашей стороны?
Re: Составление SQL-запроса для PrestaShop
Добавлено: 19 сен 2014 11:02
TechAdmin
Оплату получили. Вот список запросов для обновления тегов у товаров на основании значений характеристики 'Серия':
Код: Выделить всё
SET @id_lang = 1;;;
SET @id_feature = (SELECT id_feature FROM ps_feature_lang WHERE name = 'Серия');;;
INSERT INTO ps_tag (id_lang, name)
SELECT @id_lang AS id_lang, ps_feature_value_lang.value
FROM ps_feature_product
INNER JOIN ps_feature_value_lang ON ps_feature_value_lang.id_feature_value=ps_feature_product.id_feature_value
WHERE ps_feature_product.id_feature=@id_feature AND
ps_feature_value_lang.id_lang=@id_lang AND
ps_feature_value_lang.value NOT IN (SELECT ps_tag.name FROM ps_tag GROUP BY ps_tag.name)
GROUP BY ps_feature_value_lang.value;;;
INSERT INTO ps_product_tag (id_product, id_tag)
SELECT ps_feature_product.id_product, ps_tag.id_tag
FROM ps_feature_product
INNER JOIN ps_feature_value_lang ON ps_feature_value_lang.id_feature_value=ps_feature_product.id_feature_value
INNER JOIN ps_tag ON ps_feature_value_lang.value=ps_tag.name
WHERE ps_feature_product.id_feature=@id_feature AND
ps_feature_value_lang.id_lang=@id_lang AND
ps_tag.id_lang=@id_lang AND
ps_tag.id_tag NOT IN (SELECT id_tag FROM ps_product_tag WHERE ps_product_tag.id_product=ps_feature_product.id_product)
GROUP BY ps_feature_product.id_product, ps_feature_value_lang.value;;;
SQL запросы скопировать для шаблона экспорта "фильтрация" вот сюда

- prestashop_sql.png (193.42 КБ) 4684 просмотра
Re: Составление SQL-запроса для PrestaShop
Добавлено: 19 сен 2014 11:09
automaton
Спасибо. На небольшой выборке протестировал — всё работает как надо.