Дубли в выборке SQL

Статус
В этой теме нельзя размещать новые ответы.

zek24

Мой дом здесь!
Команда форума
Модератор
Регистрация
14 Ноя 2009
Сообщения
811
Реакции
310
  • Автор темы
  • Модер.
  • #1
Привет комрады!
давно не обращался к sql и подзабыл...
Код:
SELECT product.product_id,
        product.model,
        product.quantity,
        product.image,
        product.price,
        product_description.name,
        product_description.description,
        product_to_category.category_id,
        (SELECT category_description.name FROM category_description WHERE category_description.category_id = product_to_category.category_id) AS category_name,
        product_to_ymm.make_id,
        (SELECT make.make FROM make WHERE make.id = product_to_ymm.make_id) AS auto_1,
        product_to_ymm.model_id,
        (SELECT model.model FROM model WHERE model.id = product_to_ymm.model_id) AS auto_2,
        product_to_ymm.begin_year,
        product_to_ymm.end_year                               
        FROM product, product_description, product_to_category, product_to_ymm
        WHERE
        product.product_id = product_description.product_id
        AND product_description.product_id = product_to_category.product_id
        AND product_description.product_id = product_to_ymm.product_id       
        ORDER BY product_to_category.category_id, product.product_id
Делаю выборку из магазина опенкарт несколько стандартных таблиц + две из модуля подбора товара по машине.
Проблема в том, что некоторые строки выводятся по 4, 2 раза, некоторые нормально - 1раз.
Забыл как правильно объединять таблицы в запросе... сейчас малость горит - нет времени штудировать литературу заново.
Хелпните, кому не сложно.
 
у вас, скорее всего, товар может находиться в нескольких категориях(в корневой, подкатегории, подподкатегории), поэтому выводится по нескольку раз, для каждой из категорий.

сгруппируйте запрос по product.product_id, т.е.
Код:
group by product.product_id
 
  • Автор темы
  • Модер.
  • #4
у вас, скорее всего, товар может находиться в нескольких категориях(в корневой, подкатегории, подподкатегории), поэтому выводится по нескольку раз, для каждой из категорий.

сгруппируйте запрос по product.product_id, т.е.
Код:
group by product.product_id
что-то не так...
добавляю
group by product.product_id и в результате в выборке получается 3133 товаров, хотя в таблице product их 3325
-------------------------------------------
решено
------------------------------------------
Код:
SELECT product.product_id,
        product.model,
        product.quantity,
        product.image,
        product.price,
        product_description.name,
        product_description.description,
        product_to_category.category_id,
        (SELECT category_description.name FROM category_description WHERE category_description.category_id = product_to_category.category_id) AS category_name,
        product_to_ymm.make_id,
        (SELECT make.make FROM make WHERE make.id = product_to_ymm.make_id) AS auto_1,
        product_to_ymm.model_id,
        (SELECT model.model FROM model WHERE model.id = product_to_ymm.model_id) AS auto_2,
        product_to_ymm.begin_year,
        product_to_ymm.end_year  
        FROM product
        LEFT JOIN product_description ON product.product_id = product_description.product_id
        LEFT JOIN product_to_category ON product_description.product_id = product_to_category.product_id
        LEFT JOIN product_to_ymm ON product_description.product_id = product_to_ymm.product_id
        GROUP BY product.product_id
        ORDER BY product_to_category.category_id, product.product_id
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху