1
出於優化原因,我已經實施了修改的預定義樹遍歷as explained here。我的表是這樣的:當有多棵樹時,使用修改的預定義樹遍歷進行選擇
+----+-----------+------+-------+
| id | parent_id | left | right |
+----+-----------+------+-------+
| 1 | NULL | 1 | 4 |
| 2 | 1 | 2 | 3 |
| 3 | NULL | 1 | 4 |
| 4 | 3 | 2 | 3 |
+----+-----------+------+-------+
I.e.表中存在任意數量的樹。如果節點的父節點id爲null,那麼這自動意味着該節點是其樹的最底層。
文章指出,人們可以選擇所有節點的後代很乾脆:
SELECT *
FROM table
WHERE
left > ?
AND
right < ?
現在我的問題是,選擇顯然會包括其他樹木節點。畢竟,我甚至沒有指定一棵樹開始。是否可以使用此模型從一個指定的樹中選擇節點?