2015-02-03 2 views
0

Я использую PostgreSQL, и у меня есть модель, вложенная модель набора, для таблицы, содержащей отношения.Как получить сыновей без внуков дизайна узла в модели вложенного набора?

В качестве узла в модели, каждая строка, очевидно, должны имеет поля «LFT» и «RGT», еще более, я должен добавить поле parent_id (со ссылкой на его родительский узел), которое само-объяснения ,

Модель, удобная для запроса всего узлового узла указанного узла, но теперь я просто хочу, чтобы его дети, но не все его потомки, имели высокую производительность.

each node has a field "pid" referring to its parent node

Не могли бы вы мне помочь? Огромное спасибо!

Я нашел ответ. ==>Help with writing a SQL query for Nested Sets

+0

Пожалуйста, предоставьте нам пример таблицы и запросы до сих пор. – Smutje

+0

"* Я добавляю поле parent_id (ссылаясь на его родительский узел) *" - почему вы поддерживаете две разные реализации иерархии? –

+0

Я не беспокоюсь о производительности вставки, но важна производительность, поэтому я думаю, что добавление parent_id делает его более гибким и делает это. –

ответ

0
select * 
from table as t_children 
where t_children.parent_id in (
    select * 
    from table as t_parent 
    where t_parent.parent_id is null 
) 
+0

нет ...... извините .... Я просто хочу, чтобы дети определяли указанный узел, но не все родительские. И, похоже, он имеет низкую производительность. –

+0

Просто измените предложение 'where' для внутреннего выбора - и почему он должен иметь низкую производительность? Внешний выбор работает с идентификатором, просто добавьте индекс. – Smutje

+0

OK, thx, я должен попытаться добавить индекс. –

Смежные вопросы