【发布时间】:2010-09-15 06:01:15
【问题描述】:
我认为答案是否定的,但我希望有人能够深入了解如何在 SQL (MySQL) 中将树结构爬取到任何深度,但只需一次查询
更具体地说,给定一个树结构表(id、data、data、parent_id)和表中的一行,是否有可能获得所有个后代(child/grandchild/etc),或者就此而言,所有祖先(父母/祖父母/等)都不知道它会下降或上升多远,使用单个查询?
或者正在使用某种递归需求,我不断深入查询直到没有新结果?
具体来说,我使用的是 Ruby 和 Rails,但我猜这不是很相关。
【问题讨论】:
-
PostgreSQL 允许直接使用尾递归(= 迭代)查询,但据我所知 MySQL 不允许。我之前在 Postgres 中成功地使用过这种技术来替代嵌套集方法。 postgresql.org/docs/8.4/static/queries-with.html
标签: mysql sql database-design data-structures hierarchical-data