Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Hierarchal SQL in JOIN / 7 сообщений из 7, страница 1 из 1
30.01.2003, 23:54
    #32099168
Victor S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hierarchal SQL in JOIN
Иерархический под-запрос возвращает от 1 до 1000 значений и соответственно WHERE <some> in ( <list>) не эффективен.
Можно ли переписать это как JOIN ?

SELECT count(1) FROM INVENTORY
WHERE assigned_to IN
(SELECT employee_id
FROM employees
START WITH employee_id = '14998'
CONNECT BY PRIOR employee_id = supervisor_id);


Премного буду благодарен
...
Рейтинг: 0 / 0
31.01.2003, 00:40
    #32099172
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hierarchal SQL in JOIN
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select count(*) from inventory i
where exists (select null
              from employees e
              where i.assigned_to = e.employee_id
              connect by prior e.employee_id = e.supervisor_id
              start with employee_id = '14998')
;
...
Рейтинг: 0 / 0
31.01.2003, 18:27
    #32099849
Victor S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hierarchal SQL in JOIN
Спасибо Гена! Идея понятна, однако SQL plus уходит в себя и не возвращается. Может какая деталь ?
...
Рейтинг: 0 / 0
31.01.2003, 18:42
    #32099859
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hierarchal SQL in JOIN
Соотнесенный подзапрос тем и интересен, что выполняется ровно столько раз, сколько записей возвратил бы внешний запрос без подзапроса, Т.е. чем больше записей в INVENTORY, тем выгоднее твой первоначальный вариант.
...
Рейтинг: 0 / 0
31.01.2003, 18:45
    #32099861
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hierarchal SQL in JOIN
1) zelatelno poluchit plan vipolneniye zaprosa

> set autotrace traceonly

2) ochen zelatelno imet indeksy na polyah:
-- i.assigned_to
-- e.employee_id
-- e.supervisor_id
...
Рейтинг: 0 / 0
31.01.2003, 19:23
    #32099878
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hierarchal SQL in JOIN
Kak dobavlenie k Denisu.

Filtr po where vipolniaetsya POSLE postroeniya polnogo dereva v korrelirovannom podzaprose.
...
Рейтинг: 0 / 0
01.02.2003, 12:49
    #32099969
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hierarchal SQL in JOIN
не совсем то наверное но тоже неплохо:

SELECT count(1) FROM INVENTORY I,
(SELECT employee_id FROM employees
START WITH employee_id = '14998'
CONNECT BY PRIOR employee_id = supervisor_id) E
WHERE I.assigned_to = E.employee_id;
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Hierarchal SQL in JOIN / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]