Как получить все товары при условии, что самая верхняя категория активна(имеет active = true)?
Есть 2 таблицы: категории и товары. Есть дерево категорий: cat>subcat>subsubcat...и т.д.
Пример:
sqlfiddle
Основываясь на данном примере результат должен быть 0 т.к Самая верхняя категория 'Cat1' имеет active 'false'
Я пробовал сделать так:
SELECT * FROM shop_products
INNER JOIN shop_category as sc1 ON (shop_products.category_id=sc1.id)
INNER JOIN shop_category as sc2 ON (sc1.parent_id=sc2.id)
WHERE sc2.active=1
Но это работает только для одного уровно вложенности.
Надеюсь, вопрос понятен. Заранее благодарен.