|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Sergei Zabelich 2:5020/400 21 Feb 2001 14:12:25 To : All Subject : Re: Еще раз о древовидных структурах. -------------------------------------------------------------------------------- Sh Sergey пишет в сообщении <3a91064d@digi8.pi.net.ua> ... >Тут уже обсуждался этот вопрос, я хотел поставить задачу более строго и >ограничено. > >Дано: > Таблица имеет ссылку на себя. > > PrimaryKey fkUpLevel Info >---------------------------------------------------------------- > 1 NULL Node_1_Level_0 > 2 1 Node_1_Level_1 > 3 2 Node_1_Level_2 > 4 2 Node_2_Level_2 > 5 1 Node_2_Level_1 > 6 5 Node_3_Level_2 > 7 5 Node_4_Level_2 > 8 NULL Node_2_Level_0 > >В виде дерева: > >Node_1_Level_0 > Node_1_Level_1 > Node_1_Level_2 > Node_2_Level_2 > Node_2_Level_1 > Node_3_Level_2 > Node_4_Level_2 >Node_2_Level_0 > >Вопрос: > Существует ли один SELECT который построит результат в виде > > PrimaryKey Level Info >---------------------------------------------------------------- > 1 0 Node_1_Level_0 > 2 1 Node_1_Level_1 > 3 2 Node_1_Level_2 > 4 2 Node_2_Level_2 > 5 1 Node_2_Level_1 > 6 2 Node_3_Level_2 > 7 2 Node_4_Level_2 > 8 0 Node_2_Level_0 > >Главное, как мне кажется, вычислить поле Level!!! Всех проблем поле Level не снимает. Как отобрать записи одним запросом зависит от сервера. В InterBase я создавал дополнительную табличку со всеми связями между узлами, которую заполнял из триггеров основной таблички. Другой способ - использовать процедуры. -- Sergei Zabelich, <zabelich@tut.by> Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/8977e3216d72.html, оценка из 5, голосов 10
|