Я использую вложенный набор в таблице MySQL для описания иерархии категорий и дополнительную таблицу, описывающую продукты.
Таблица категорий;
id
name
left
right
Таблица продуктов;
id
categoryId
name
Как я могу получить полный путь, содержащий все родительские категории, продукта? I.e.:
RootCategory > SubCategory 1 > SubCategory 2 > ... > SubCategory n > Product
Скажем, например, что я хочу перечислить все продукты из SubCategory1
и его подкатегорий, и для каждого данного Product
Я хочу полный путь к этому продукту - возможно ли это?
Насколько я знаю, - но структура не совсем правильная ...
select
parent.`name` as name,
parent.`id` as id,
group_concat(parent.`name` separator '/') as path
from
categories as node,
categories as parent,
(select
inode.`id` as id,
inode.`name` as name
from
categories as inode,
categories as iparent
where
inode.`lft` between iparent.`lft` and iparent.`rgt`
and
iparent.`id`=4 /* The category from which to list products */
order by
inode.`lft`) as sub
where
node.`lft` between parent.`lft` and parent.`rgt`
and
node.`id`=sub.`id`
group by
sub.`id`
order by
node.`lft`