我有一个具有多层类别结构的产品数据库。产品被分配到一个类别。类别表如下所示:
id name parent_id
================================
1 Electronics NULL
2 AV 1
3 Speakers 2
4 Wireless 3
我想要做的是,作为产品的SELECT语句的一部分,输出类别树的连接字符串。
产品始终分配到最后一个类别,例如,Product" 500w无线扬声器"将被分配到category_id
4(基于上述内容)。
ouputted列应为Electronics-AV-Speakers-Wireless
。
这可能吗?我看过GROUP_CONCAT()
,但我在制定正确的语法时遇到了麻烦。
答案 0 :(得分:0)
根据需要加入多次,并连接名称:
select concat(a.name, '-', b.name, '-', c.name, '-', d.name) name
from mytable a
join mytable b on a.id = b.parent_id
join mytable c on b.id = c.parent_id
join mytable d on c.id = d.parent_id;