我有一個定義節點之間的父子關係的表:如何在遞歸SQL查詢中查找子樹中的所有節點?
CREATE TABLE node ( ' pseudo code alert
id INTEGER PRIMARY KEY,
parentID INTEGER, ' should be a valid id.
)
如果parentID
總是指向一個有效現有節點,那麼這自然會定義一個樹狀結構。
如果parentID
是NULL
那麼我們可以假設該節點是根節點。
我怎麼會:
- 找到所有這些都是給定節點的decendents的節點?
- 查找給定節點下的所有節點到特定深度?
我想做的每個這些作爲單個SQL(我期望它必然是遞歸)或兩個相互遞歸查詢。
我在ODBC上下文中這樣做,所以我不能依賴任何供應商特定的功能。
編輯
- 沒有表寫呢,因此增加額外的列/表是完全可以接受的。
- 該樹將潛在地更新並添加到相當頻繁;輔助數據結構/表格/列將是可能的,儘管需要保持最新。 如果您有任何有關這類查詢的魔法書,我想知道。
非常感謝。
看起來像甲骨文虐待MySQL的網站鏈接,是否有可能現在以某種方式找到教程? – martinthenext 2012-01-09 23:44:12