Автор Тема: SQL запрос: клоны товаров  (Прочитано 65 раз)

23 Апреля 2016, 12:57:57
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день. Использую вот такой Sql запрос:

SELECT p.id_product, pl.name, GROUP_CONCAT(DISTINCT t.name SEPARATOR ',') AS tag, l.name AS lang
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product)
LEFT JOIN ps_tag t ON (pt.id_tag = t.id_tag)
LEFT JOIN ps_lang l ON (l.id_lang = t.id_lang)
GROUP BY pl.name
ORDER BY p.id_product;
Проблема в том, что происходит задватвание некоторых товаров. Детали в файле ниже. Помогите решить проблему, спасибо огромное.
23 Апреля 2016, 16:44:29
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Значит у вас мультимагазин, поэтому включайте в запрос условие для магазина.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
23 Апреля 2016, 16:51:57
Ответ #2
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нет, этот параметр отключен. Где еще искать?
23 Апреля 2016, 21:07:20
Ответ #3
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Все зависит того был ли включен мультимагазин. Если такой режим был, потом его отключили, то данные в бд сохранилимь и будет дублирование товаров. В любом случае нужно включить WHERE в запрос и указать ид магазина, ид языка. Так запрос подойдет ко всем случаем.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
23 Апреля 2016, 21:09:33
Ответ #4
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно подробней?
23 Апреля 2016, 21:19:49
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Нет там никакого задвоения. Это у вас комбинации товара под одним номером id товара.
Запрос в корне не правильный для получения списка товаров с комбинациями. Подходит только когда у товаров нет комбинаций
23 Апреля 2016, 21:22:20
Ответ #6
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А если комбинации выключены? Тогда задам другой вопрос: как вытащить иначе номер,название товара и теги для него?
23 Апреля 2016, 21:25:38
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85953
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Измените
GROUP BY pl.nameна
GROUP BY p.id_product;
23 Апреля 2016, 21:41:22
Ответ #8
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Помогло, спасибо.