我认为答案是否定的,但是我很喜欢它,任何人都可以深入了解如何在SQL(MySQL)中将树结构爬网到任何深度,而只需一个查询
更具体地说,给定一个树形结构的表(id,数据,数据,parent_id)和表中的一行,是否有可能获得所有后代(子代/孙代/等等),或者所有祖先(父代/祖父母) / etc),而不用单个查询知道它会走多远?
还是使用某种递归需求,在这里我不断进行更深入的查询,直到没有新结果为止?
具体来说,我使用的是Ruby和Rails,但我猜这不太相关。
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。