sql запрос для экспорта данных

Автор Chemurash, 12 октября 2016, 23:29:16

« назад - далее »

Chemurash

Знающие, помогите!
Необходимо "вытащить" данные с сайта.
Все получается, но существующий запрос экспортирует данные без ссылки на изображения.
Сделал запрос с привязкой к изображениям
но что то пошло не так. на данный запрос Presta ругается, говоря: Когда используются большое количество таблиц, каждый атрибут должен быть связан с таблицей.

SELECT p.id_product, p.active, pl.name, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") as categories, p.price, p.id_tax_rules_group, p.wholesale_price, p.reference, p.supplier_reference, p.id_supplier, p.id_manufacturer, p.upc, p.ecotax, p.weight, p.quantity, pl.description_short, pl.description, pl.meta_title, pl.meta_keywords, pl.meta_description, pl.link_rewrite, pl.available_now, pl.available_later, p.available_for_order, p.date_add, p.show_price, p.online_only, p.condition, p.id_shop_default, i.id_image, CONCAT("http://yoursite.ru/", p.id_product, "-", i.id_image,"/",pl.link_rewrite,".jpg") AS image_link
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN ps_category c ON (cp.id_category = c.id_category)
LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product)
LEFT JOIN ps_image i ON i.id_product = p.id_product AND i.cover = 1
WHERE pl.id_lang = 6
AND cl.id_lang = 6
AND p.id_shop_default = 1
AND c.id_shop_default = 1
GROUP BY p.id_product;


Сильно не ругайтесь, я только учусь.
Лучше помогите, настроить правильный запрос!

Vlad_Stiff

все просто, когда вы копировали запрос, то двойные кавычки  "  заменились на  "
CONCAT("http://yoursite.ru/", p.id_product, "-", i.id_image,"/",pl.link_rewrite,".jpg") AS image_link
"  заменить на   "
CONCAT("http://yoursite.ru/", p.id_product, "-", i.id_image,"/",pl.link_rewrite,".jpg") AS image_link
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -

Vlad_Stiff

проверьте правильность построения ссылки на изображение
на 1.6 будет работать такой вариант
CONCAT("http://yoursite.ru/", i.id_image,"-large_default/",pl.link_rewrite,".jpg") AS image_link

       
  • large_default или другой размер изображения, настраивается в админке (Настройки/Изображения)
  • pl.link_rewrite не играет никакой роли в доступе к изображению, потому можно заменить на что то более полезное, например на ID товара
CONCAT("http://yoursite.ru/", i.id_image,"-large_default/",p.id_product,".jpg") AS image_link
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -

Chemurash

Цитата: Vlad_Stiff от 13 октября 2016, 08:21:18
все просто, когда вы копировали запрос, то двойные кавычки  "  заменились на  &quot;
CONCAT("http://yoursite.ru/&quot;, p.id_product, "-", i.id_image,"/",pl.link_rewrite,".jpg") AS image_link
&quot;  заменить на   "
CONCAT("http://yoursite.ru/", p.id_product, "-", i.id_image,"/",pl.link_rewrite,".jpg") AS image_link

Спасибо!
Надо больше спать. Не увидел оплошность. Поправил.
Но дело, видимо не в этом.
все равно ошибка:
Когда используются большое количество таблиц, каждый атрибут должен быть связан с таблицей.

Chemurash

Цитата: Vlad_Stiff от 13 октября 2016, 08:33:52
проверьте правильность построения ссылки на изображение
на 1.6 будет работать такой вариант
CONCAT("http://yoursite.ru/", i.id_image,"-large_default/",pl.link_rewrite,".jpg") AS image_link

       
  • large_default или другой размер изображения, настраивается в админке (Настройки/Изображения)
  • pl.link_rewrite не играет никакой роли в доступе к изображению, потому можно заменить на что то более полезное, например на ID товара
CONCAT("http://yoursite.ru/", i.id_image,"-large_default/",p.id_product,".jpg") AS image_link

исправил

SELECT p.id_product, p.active, pl.name, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") as categories, p.price, p.id_tax_rules_group, p.wholesale_price, p.reference, p.supplier_reference, p.id_supplier, p.id_manufacturer, p.upc, p.ecotax, p.weight, p.quantity, pl.description_short, pl.description, pl.meta_title, pl.meta_keywords, pl.meta_description, pl.link_rewrite, pl.available_now, pl.available_later, p.available_for_order, p.date_add, p.show_price, p.online_only, p.condition, p.id_shop_default, i.id_image, CONCAT("http://yoursite.ru/", i.id_image,"-large_default/",p.id_product,".jpg") AS image_link
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN ps_category c ON (cp.id_category = c.id_category)
LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product)
LEFT JOIN ps_image i ON i.id_product = p.id_product AND i.cover = 1
WHERE pl.id_lang = 6
AND cl.id_lang = 6
AND p.id_shop_default = 1
AND c.id_shop_default = 1
GROUP BY p.id_product;


не помогло(

Когда используются большое количество таблиц, каждый атрибут должен быть связан с таблицей.

Vlad_Stiff

на Prestashop 1.6.1.1 и MYSQL 5.5 отлично работает

смотрите на название таблиц, может префикс другой, в примере "ps_"
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -