Учитывая дерево, как это:SQL - вложенная множественная модель - как я нахожу самые глубокие родитель (не листовые узлы) каждую ветвь
A----B---------C----D | | E----F G | H
Мне нужен найти С и Е (две глубоких узлов каждая уникальная ветвь, AC и AE)
Наша база данных использует модель вложенного набора, а также список смежности в качестве резервной копии для поддержки древовидной структуры в случае, если левое и правое значения выходят из строя.
можно исключить все узлы листьев (RGT = LFT + 1) и корневой узел (LFT = 1) , который оставляет меня с BE C. Как вы можете себе представить, что это очень упрощенный пример, некоторые из наших деревьев имеют более 100 узлов. Как я могу избавиться от этого шума в своих данных?
Ниже приводятся данные примера, если они были сохранены в нашей базе данных.
node | parent | lft | rgt | ------+--------+-----+-----+ A | NULL | 1| 16| B | A | 2| 15| E | B | 3| 8| F | E | 4| 5| H | E | 6| 7| C | B | 9| 14| D | C | 10| 11| G | C | 12| 13|
Благодарим за помощь!