powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Движения по связям (на подобие дерева)
8 сообщений из 8, страница 1 из 1
Движения по связям (на подобие дерева)
    #39445159
VicSO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with TAB1 as ( select 99991 as id,  5 as qty from dual union all
               select 99992 as id, 10 as qty from dual union all
               select 99993 as id, 15 as qty from dual
          ),
   TAB2 as (select  77771 as id, 'doc3'   as name,           88881 as p_id from dual union all
            select  88881 as id, 'order'  as name,               2 as p_id from dual union all
            select      2 as id, 'doc1'   as name,               3 as p_id from dual union all
            select      3 as id, 'doc2'   as name,           99991 as p_id from dual union all
            select  88882 as id, 'order'  as name,               8 as p_id from dual union all
            select  88883 as id, 'order'  as name,               8 as p_id from dual union all
            select      8 as id, 'order'  as name,               9 as p_id from dual union all
            select      9 as id, 'doc1'   as name,              10 as p_id from dual union all
            select     10 as id, 'doc2'   as name,           99992 as p_id from dual
          )



нужно получить все что в таблице TAB1 и TAB2 id
не могу сообразить как сделать, то есть берем ID из TAB1 и подымаемся до тех пор пока не будет name 'order'
могут встречаться циклы.
...
Рейтинг: 0 / 0
Движения по связям (на подобие дерева)
    #39445210
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VicSOнужно получить все что в таблице TAB1 и TAB2 id
left join
VicSOи подымаемся до тех пор пока не будет
Куда подымаемся? На Эверест?
VicSOмогут встречаться циклы.
Здесь водятся драконы..

С таким подходом, ты слона не продашь. Учись формулировать и приведи пример желаемого результата на этих данных.
...
Рейтинг: 0 / 0
Движения по связям (на подобие дерева)
    #39445211
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

отдел телепатии просил передать, что в хрустальном шаре они увидели connect by
...
Рейтинг: 0 / 0
Движения по связям (на подобие дерева)
    #39445819
VicSO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with TAB1 as ( select 99991 as id,  5 as qty from dual union all
               select 99992 as id, 10 as qty from dual union all
               select 99993 as id, 15 as qty from dual
          ),
   TAB2 as (select  77771 as id, 'doc3'   as name,           88881 as p_id from dual union all
            select  88881 as id, 'order'  as name,               2 as p_id from dual union all
            select      2 as id, 'doc1'   as name,               3 as p_id from dual union all
            select      3 as id, 'doc2'   as name,           99991 as p_id from dual union all
            select  88882 as id, 'order'  as name,               8 as p_id from dual union all
            select  88883 as id, 'order'  as name,               8 as p_id from dual union all
            select      8 as id, 'order'  as name,               9 as p_id from dual union all
            select      9 as id, 'doc1'   as name,              10 as p_id from dual union all
            select     10 as id, 'doc2'   as name,           99992 as p_id from dual
          ),
    TAB3 as ( select  88881 as id,  5 as qty1 from dual union all
              select  88882 as id, 10 as qty1 from dual union all
              select  88883 as id, 11 as qty1 from dual union all
          ) 


получить нужно
Код: sql
1.
2.
3.
88881,5  qty1, 99991 ,5  qty
88882,10 qty1, 99992 ,10 qty
88883,11 qty1, 99992 ,10 qty



Код: sql
1.
2.
3.
4.
5.
SELECT id, CONNECT_BY_ROOT p_id p_id
                      FROM TAB2
                     WHERE name = 'order' AND CONNECT_BY_ISLEAF = 1
                START WITH p_id = (вот как сюда подставлять данные из TAB1 (она большая и на нее могут накладываются еще дополнительные фильтра (Дата)))
                CONNECT BY NOCYCLE PRIOR p_id = id
...
Рейтинг: 0 / 0
Движения по связям (на подобие дерева)
    #39445899
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VicSO,

with p_id in (select id from tab1 where ...) - не пробовал ещё?
...
Рейтинг: 0 / 0
Движения по связям (на подобие дерева)
    #39447023
VicSO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

with p_id in (select id from tab1 where ...) а как туда динамические параметры записывать тогда?
у меня в итоге вьюха должна получится.
если тупа with p_id in (select id from tab1) но это тогда будет вытаскивать все данные из таблице :(
и тут вопрос как отреагирует оракла, если tab1 еще потом дальше цепляться будет, так как нужно будет вывести поля.
...
Рейтинг: 0 / 0
Движения по связям (на подобие дерева)
    #39447026
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VicSOа как туда динамические параметры записывать тогда?
у меня в итоге вьюха должна получится http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Движения по связям (на подобие дерева)
    #39447246
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VicSOа как туда динамические параметры записывать тогда

Может тогда уж полную постановку задачи нормально опишешь?

А то потом снова что-нибудь "такое же, только с перламутровыми пуговицами" вспомнишь.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Движения по связям (на подобие дерева)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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