3
我有使用修改的預定義樹遍歷算法保存的分級有序數據。修改的預定義樹遍歷:選擇節點1級深
這裏的表內容:
id lft rgt name
1 1 10 topnode
2 2 3 level1
3 4 7 level1
4 5 6 level2
5 8 9 level1
可視化:
我要的是選擇特定的節點就在的childNodes(所以不是的childNodes的的childNodes)。讓我們說'topnode'。我試圖修復一個查詢,但我似乎無法解決這個問題。
搜索互聯網給我帶來一段時間,例如:我可以計算每個節點的深度,但我似乎無法選擇它。
這個查詢
SELECT node.*, (COUNT(parent.id) - 1) AS depth
FROM tree AS node
CROSS JOIN tree AS parent
WHERE (node.lft BETWEEN parent.lft AND parent.rgt)
GROUP BY node.id
ORDER BY node.lft
顯示每個節點的深度:
id lft rgt name depth
1 1 10 topnode 0
2 2 3 level1 1
3 4 7 level1 1
4 5 6 level2 2
5 8 9 level1 1
這是偉大的,但我不能用柱深爲條件!
+1,因爲它的工作原理,但它與我的35000節點樹(8秒)真的很慢。不能使用它:( – Ivan