开发者社区> 问答> 正文

是否可以通过单个查询在MySQL中查询树结构表到任何深度?

我认为答案是否定的,但是我很喜欢它,任何人都可以深入了解如何在SQL(MySQL)中将树结构爬网到任何深度,而只需一个查询

更具体地说,给定一个树形结构的表(id,数据,数据,parent_id)和表中的一行,是否有可能获得所有后代(子代/孙代/等等),或者所有祖先(父代/祖父母) / etc),而不用单个查询知道它会走多远?

还是使用某种递归需求,在这里我不断进行更深入的查询,直到没有新结果为止?

具体来说,我使用的是Ruby和Rails,但我猜这不太相关。

展开
收起
保持可爱mmm 2020-05-13 13:58:50 515 0
1 条回答
写回答
取消 提交回答
  • 58

    25 我认为答案是否定的,但是我很喜欢它,任何人都可以深入了解如何在SQL(MySQL)中将树结构爬网到任何深度,而只需一个查询

    更具体地说,给定一个树形结构的表(id,数据,数据,parent_id)和表中的一行,是否有可能获得所有后代(子代/孙代/等等),或者所有祖先(父代/祖父母) / etc),而不用单个查询知道它会走多远?

    还是使用某种递归需求,在这里我不断进行更深入的查询,直到没有新结果为止?

    具体来说,我使用的是Ruby和Rails,但我猜这不太相关。

    MySQL的 SQL 数据库设计 数据结构 的分层数据 分享改善这个问题跟随 16年3月4日在16:15编辑

    Vertexwahn 5,63666金徽章4444银徽章7070枚青铜徽章 在08年10月4日在5:42 问

    卡梅伦·布斯(Cameron Booth) 6,38255金徽章2525银徽章2121枚青铜徽章 1个 PostgreSQL允许直接使用尾递归(=迭代)查询,但据我所知MySQL不允许。在Postgres中,我已经成功地使用了此技术来替代嵌套集方法。 postgresql.org/docs/8.4/static/queries-with.html – wberry 2012年 3月5日,19: 39 添加评论 9个答案 活跃的 最古老的 投票

    是的,这是可能的,这就是所谓的“修改的预排序树遍历”,如此处最佳描述

    聪明人的SQL中的Joe Celko的树和层次结构

    这里提供了一个工作示例(PHP)

    http://www.sitepoint.com/article/hierarchical-data-database/2/ 来源:stack overflow

    2020-05-13 13:59:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云云原生一体化数仓 立即下载
基于云原生数据仓库AnalyticDB PG的最佳实践 立即下载
新氧云原生全栈数仓最佳实践 立即下载

相关镜像