|
Sybase SA 9.x и выше: Вопрос про multiple table expressions
|
|||
---|---|---|---|
#18+
Hi All, Sybase 12.0.1 Есть запрос вида: with recursive (Q1(...) as select <initial-subquery> union all select <recursive-subquery>), (Q2(...) as select <initial-subquery> union all select <recursive-subquery>) select ... from Q2 В Q1 я делаю выборку по дереву, а в Q2 мне надо для каждой строки Q1 сделать дополнительную (древовидную) проверку и строки не выдержавшие этой проверки не должны быть в конечной выборке. Проблема в том, что я не знаю как передать в Q2 для <initial-subquery> код текущей строки из Q1, что бы было от чего отталкиваться при формировании в Q2 проверочного дерева. Единственное, что мне пока пришло в голову, это оформить код Q2 в виде функции (UDF). Но хочется обойтись только запросом без использования функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2011, 18:26 |
|
Sybase SA 9.x и выше: Вопрос про multiple table expressions
|
|||
---|---|---|---|
#18+
Я бы порекомендовал результат древовидного запроса вогнать во времянку и уже по ней провести проверку, что возвращать клиентскому приложению, а что нет. Можно конечно наверное извернуться и написать все одним запросом, но в дальнейшем это будет означать как минимум, что запрос будет плохо читабельным для его возможного понимания и изменения в будущем и могут появиться проблемы оптимизации работы запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2011, 12:06 |
|
Sybase SA 9.x и выше: Вопрос про multiple table expressions
|
|||
---|---|---|---|
#18+
Правильно я понял, что вы предлагаете создать SP, объявить в ней временную таблицу, загнать в эту таблицу данные запроса Q1, затем натравить на эту таблицу проверочный запрос Q2 и выдать конечный результат пользователю ? Но это ведь сложнее, чем мой возможный вариант с UDF про который я написал в первом сообщении ... Или я не так понял ваш совет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2011, 19:10 |
|
Sybase SA 9.x и выше: Вопрос про multiple table expressions
|
|||
---|---|---|---|
#18+
Stalker4, Мой совет сложнее только тем, что кода больше. Но он может оказаться легче в читабельности и производительности. С SQL можно сказать не всегда работает принцип "Чем меньше кода, тем легче и надежнее". Это конечно философский вопрос, но при проектировании логики в РСУБД в отличие от императивных языков, я в первую очередь смотрю на производительность и читабельность (то есть понимание логики) кода, а уже потом на его универсальность, размеры и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2011, 11:42 |
|
|
start [/forum/topic.php?fid=55&fpage=19&tid=2010281]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 315ms |
total: | 446ms |
0 / 0 |