为了账号安全,请及时绑定邮箱和手机立即绑定

从MySQL中的分层数据生成基于深度的树(无CTE)

从MySQL中的分层数据生成基于深度的树(无CTE)

婷婷同学_ 2019-06-23 14:41:47
从MySQL中的分层数据生成基于深度的树(无CTE)嗨,很多天了,我一直在用MySQL来解决这个问题,但是我想不出来。你们有什么建议吗?基本上,我有一个类别表,其域如下:id, name(类别名称)parent(类别的父类的ID)。示例数据:1  Fruit        02  Apple        13  pear         14  FujiApple    25  AusApple     26  SydneyAPPLE  5....有许多层次,可能超过3个层次。我想要创建一个SQL查询,该查询根据层次结构对数据进行分组:父级>子级>外孙>等等。它应该输出树结构,如下所示:1 Fruit 0  ^ 2 Apple 1    ^ 4 FujiApple 2    - 5 AusApple 2      ^ 6 SydneyApple 5  - 3 pear 1我可以使用一个SQL查询来完成这个任务吗?我尝试过并确实发挥了作用的另一种选择是:SELECT * FROM category WHERE parent=0在此之后,我再次循环数据,并选择Parent=id所在的行。这似乎是个糟糕的解决方案。因为它是MySQL,所以不能使用CTE。
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

在RDBMS中存储分层数据有两种常见的方法:邻接列表(您正在使用的)和嵌套集。关于这些替代方案,有一篇很好的文章。管理MySQL中的分层数据..您只能在使用嵌套集模型的单个查询中执行所需的操作。然而,嵌套的集合模型使更新层次结构的工作更多,因此您需要根据您的操作需求考虑权衡。


查看完整回答
反对 回复 2019-06-23
  • 3 回答
  • 0 关注
  • 439 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信