|
Помогите, пожалуйста, с запросом
|
|||
---|---|---|---|
#18+
Здравствуйте. Я начинающий sql-щик. Прошу не пинать, а помочь по мере возможности. Таблица обычная древесная. Есть поля ID и ParentID. Можно ли, имея идентификатор записи, одним запросом выбрать ее, плюс всех детей, детей детей и т.д., если уровни вложенности неограничены? Заранее благодарен за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2002, 12:53 |
|
Помогите, пожалуйста, с запросом
|
|||
---|---|---|---|
#18+
По моему правильно это на уровне клиента в цикле делать надо. У меня была подобная ситуация, я ее так разрешил: у меня не было полей ID и IDparent, а было только одно - ID текстовое, а идентификаторы типа: 001,002,003,001001,001002,001003,003001,003002,002001, 001001001,001001002 ... и так далее. Понятно, что 001 это родитель 001001,001002,001003 а запрос выглядел следующим образом: select * from <table> where id like '001%' order by id - достаешь всю ветку дерева ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2002, 14:47 |
|
Помогите, пожалуйста, с запросом
|
|||
---|---|---|---|
#18+
Не придумал я как сделать это одним запросом, а просто написал рекурсивную процедурку: begin select id, parent, child, state, name, description, id_acc, type1, deleted from rf_account where ID = :AID into :id, :parent, :child, :state, :name, :description, :id_acc, :type1, :deleted; suspend; for select ID from rf_account where PARENT=:AID and STATE<5 into :CHILD_ID do begin for select id, parent, child, state, name, description, id_acc, type1, deleted from SP_GET_ACCNT(:CHILD_ID) into :id, :parent, :child, :state, :name, :description, :id_acc, :type1, :deleted do suspend; end end ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2002, 15:39 |
|
Помогите, пожалуйста, с запросом
|
|||
---|---|---|---|
#18+
Жаль тебя расстроить, но глубина рекурсии ограничена 1000 уровнями (под мосдаем вобще 750). Хотя, может, ты так глубоко и не ныряешь :-). Я господам-разработчикам доказывал нужность этого дела - обещали вынести в файл конфигурации. Так что, ждёмс ... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2002, 16:41 |
|
|
start [/forum/topic.php?fid=40&msg=32073483&tid=1581052]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 282ms |
total: | 419ms |
0 / 0 |