您正在使用邻接表模型来组织层次结构数据。这种递归操作很困难的事实实际上是该模型的一个主要缺点。
一些DBMS(例如SQL Server 2005,Postgres 8.4和Oracle
11g)支持使用带有关键字的常用表表达式进行递归查询
WITH。
对于MySQL,您可能有兴趣查看下面的文章,该文章描述了替代模型(嵌套集模型),该模型使递归操作更容易(可能):
- Mike Hillyer:在MySQL中管理分层数据
此外,我还建议您查看Bill Karwin在上面的评论中指出的演示文稿。所描述的闭合表模型是嵌套集的非常有效的替代方案。



