У меня есть иерархическая структура базы данных, например. столбцы ID
и PARENT_ID
, определенные для каждой строки, при этом строки верхнего уровня имеют NULL PARENT_ID
.
У меня все отношения из этой таблицы объединены в другую таблицу, например. если бы в одной иерархии прародителей, родителей, внуков было три записи, было бы 3 записи:
**ANCESTOR, DESCENDANT**
grantparent, parent
grandparent, grandchild
parent, grandchild
Вместо выполнения иерархического запроса для определения того, что внук является потомком дедушки и бабушки, я могу просто проверить наличие записи (grandparent, grandchild)
в этой плоской таблице.
Мой вопрос заключается в том, как с помощью этой плоской таблицы наиболее эффективно вернуть все записи, находящиеся между двумя узлами. Используя пример с grandparent
и grandchild
в качестве моих параметров, как я могу вернуть запись (grandparent, parent)
.
Я не хочу использовать иерархический запрос для решения этой проблемы... Мне интересно, можно ли это сделать без каких-либо объединений.