Я хочу экспортировать все продукты из базы данных Open Cart
с их родительскими категориями. Мои таблицы:
oc_product_description
(идентификатор продукта, имя, язык ....)
oc_product
(идентификатор продукта, модель, цена, статус ...)
oc_product_to_category
(идентификатор продукта, идентификатор категории)
oc_category
(идентификатор категории, статус ....)
oc_category_description
(идентификатор категории, имя, идентификатор языка ...)
Вот мой код:
select pd.name as 'product', cd3.name as 'cat 1', cd2.name as 'cat 2', cd.name as 'cat 3', p.model, p.price
from oc_product_description pd
join oc_product p on pd.product_id = p.product_id
join oc_product_to_category pc on p.product_id = pc.product_id
join oc_category c on pc.category_id = c.category_id
join oc_category_description cd on c.category_id = cd.category_id
join oc_category c2 on (c.parent_id = c2.category_id)
join oc_category_description cd2 on c.category_id = cd2.category_id
join oc_category c3 on (c2.parent_id = c3.category_id)
join oc_category_description cd3 on c3.category_id = cd3.category_id
where
p.status = 1 AND pd.language_id = 2 AND c.status = 1 AND cd.language_id = 2
AND ((c2.status = 1 AND cd2.language_id = 2) OR c.parent_id = 0)
AND ((c3.status = 1 AND cd3.language_id = 2) OR c2.parent_id = 0)
Но проблема в том, что он не возвращает продукты только с одной или двумя категориями уровня (c.parent_id = 0
и / или c2.parent_id = 0
)
ОБНОВЛЕНИЕ
В итоге я экспортировал 3 разных файла и затем объединил их ... 1-й файл со всеми 3 уровнями категорий, 2-й файл с 2-мя уровнями категорий и 3-й файл столько один уровень категории