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