mysql利用存储过程导出多级分类树形结构数据

hellorichen 2018-09-12 11:19:51
根据pid查询各级节点的树形结构,表结构及数据如下

图1 结构


图2 数据

想得到的效果

图3 想得到的效果

自己编写sql得到的效果

图4

自己编写的sql语句如下:
SELECT a.`name`,a.id,b.`name`,b.id,c.`name`,c.id,d.`name`,d.id,e.`name`,e.id
FROM b_product_category a
LEFT JOIN b_product_category b ON b.pId = a.id
LEFT JOIN b_product_category c ON c.pId = b.id
LEFT JOIN b_product_category d ON d.pId = c.id
LEFT JOIN b_product_category e ON e.pId = d.id
WHERE a.pId = 0
ORDER BY a.orderid,b.id,c.id,d.id,e.id

麻烦大神写出详细sql过程语句
...全文
738 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
b0b0大魔王 2018-11-27
  • 打赏
  • 举报
回复
赞赞赞 我用的excel分类的,去掉了重复的
  • 打赏
  • 举报
回复
select case when @rownum:=@rownum+1 =1 then t1.name else null end as name, t1.`name`,t1.id,t1.`name`,t1.id,t1.`name`,t1.id,t1.`name`,t1.id,t1.`name`,t1.id from ( SELECT a.`name`,a.id,b.`name`,b.id,c.`name`,c.id,d.`name`,d.id,e.`name`,e.id FROM b_product_category a LEFT JOIN b_product_category b ON b.pId = a.id LEFT JOIN b_product_category c ON c.pId = b.id LEFT JOIN b_product_category d ON d.pId = c.id LEFT JOIN b_product_category e ON e.pId = d.id WHERE a.pId = 0 ORDER BY a.orderid,b.id,c.id,d.id,e.id )t1,(select @rownum:=0) t2 你试下看可以实现吗 具体为什么能实现我自己也有点蒙圈 我也再捋捋。。。
田小瘦 2018-09-12
  • 打赏
  • 举报
回复
你写的sql不就可以满足你么
hellorichen 2018-09-12
  • 打赏
  • 举报
回复
我想把重复的分类都去掉,像第一列有多个“手机/数码”字段

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧