初始表 category:

目标结果:

首先将表进行联结:
select c.`类目id`,c.`父类目id`,c1.`类目id`,c1.`父类目id`,c2.`类目id`,c2.`父类目id`
from category c
left join category c1 on c.`父类目id` = c1.`类目id`
left join category c2 on c1.`父类目id` = c2.`类目id`
结果:

SQL:
select if(c2.`类目id` is not null, c.`类目id`, null) as 三级类目,
if(c2.`类目id` is not null, c.`父类目id`, null) as 二级类目,
c2.`类目id` as 一级类目,
c2.`父类目id` as 根目录
from category c
left join category c1 on c.`父类目id` = c1.`类目id`
left join category c2 on c1.`父类目id` = c2.`类目id`
where if(c2.`类目id` is not null, c.`类目id`, null) is not null
group by 三级类目
结果:

本文介绍了一种使用SQL左连接查询类别表中不同层级类目的方法,通过递归地联结同一表格,实现了从根目录到三级类目的完整路径获取。
174万+

被折叠的 条评论
为什么被折叠?



