Выборка товаров по вложенным категориям
Необходимо провести выборку по вложенным категориям
catalog
-adidas
--shoes
---sneakers
-nike
--shoes
---sneakers
....
если передаю в get параметре catalog нужно вывести все вложенные товары, если shoes все его вложенные товары и тд.
SELECT p.name, p.category_id FROM `products` as p
where p.category_id in (select c.id from `category` as c where c.alias = 'catalog')
or p.category_id in (
select c.id
from `category` as c
where c.parent_id = (
select c.id
from `category` as c
where c.alias = 'catalog'
)
)
этот код работает, но мне код не нравится. можно ли его улучшить?
Источник: Stack Overflow на русском