我有一个表,它定义了节点之间的子父关系:
CREATE TABLE node ( ' pseudo code alert
id INTEGER PRIMARY KEY,
parentID INTEGER, ' should be a valid id.
)
如果parentID
总是指向一个有效的现有节点,那么这自然会定义一个树结构。
如果parentID
是,NULL
那么我们可以假设该节点是根节点。
我将如何:
- 查找作为给定节点的后代的所有节点?
- 查找给定节点下的所有节点到特定深度?
我想将这些中的每一个都作为一个 SQL(我希望它一定是递归的)或两个相互递归的查询来完成。
我在 ODBC 上下文中执行此操作,因此我不能依赖任何供应商特定的功能。
编辑
- 还没有写表,所以添加额外的列/表是完全可以接受的。
- 树可能会经常更新和添加;辅助数据结构/表/列是可能的,但需要保持最新。如果您有任何魔法书籍可以进行此类查询,我想知道。
非常感谢。