我有一张表格,它定义了节点之间的父子关系:
CREATE TABLE node ( ' pseudo code alert
id INTEGER PRIMARY KEY,
parentID INTEGER, ' should be a valid id.
)
如果
parentID
始终指向有效的现有节点,则自然会定义树形结构。如果
parentID
为NULL
,则可以假定该节点是根节点。如何做到以下两点:
1.查找给定节点的所有后代节点?
2.查找给定节点下特定深度的所有节点?
我希望每个查询都能用单个SQL完成(我认为这必须是递归的),或者使用两个相互递归的查询。
我在ODBC环境中进行此操作,因此无法依赖于任何特定于供应商的功能。
编辑:
1.尚未编写任何表格,因此可以接受添加额外的列/表格。
2.树可能经常更新和添加;辅助数据结构/表/列是可能的,但需要保持最新状态。
如果你有任何魔法书籍可以解决这种查询问题,我想知道。
非常感谢。