not in - не работает((((

Cookie
Дата: 01.06.2006 08:10:54
select *
from table1
where id_t1 not in (
select id_t2 from table2
)
table1.id_t1 -Pk
странно, в жабе не выполняется, долго долго думает, потом выдает ноль строк

работает так
но это ведь глупо
select  *
from table1
where id_t1 in (
select id_t1  from table1
minus
select id_t2 from table2
)
ора 9.2.0.1

научите, плиз, уму разуму
SeaGate
Дата: 01.06.2006 08:17:40
Cookie
select *
from table1
where id_t1 not in (
select id_t2 from table2
)
table1.id_t1 -Pk
странно, в жабе не выполняется, долго долго думает, потом выдает ноль строк

работает так
но это ведь глупо
select  *
from table1
where id_t1 in (
select id_t1  from table1
minus
select id_t2 from table2
)
ора 9.2.0.1

научите, плиз, уму разуму

Стоит попробовать через not exists
или
left join с добавкой во where id_t2 is null
Бомж
Дата: 01.06.2006 08:23:12
select *
  from table1 t1
where 
     not exists(
       Select 1 
          from table2 t2 
        where t1.id_t1=t2.id_t2
     )




© Бомж Inc.
Cookie
Дата: 01.06.2006 08:31:55
сэнкс, работает
а почему, ведь в книжке написано, что план выполнения у in и exists одинаковый
SeaGate
Дата: 01.06.2006 08:35:14
Cookie
сэнкс, работает
а почему, ведь в книжке написано, что план выполнения у in и exists одинаковый

Вместо чтения книжек лучше делать explain plan или смотреть v$sql_plan или включать трассировку, ИМХО.
Бомж
Дата: 01.06.2006 08:36:16
Cookie
сэнкс, работает
а почему, ведь в книжке написано, что план выполнения у in и exists одинаковый


Доверяй - Проверяй ! )
Владимор Конев
Дата: 01.06.2006 08:41:20
Cookie
сэнкс, работает
а почему, ведь в книжке написано, что план выполнения у in и exists одинаковый
Читай тут, кури бамбук, вникай, понимай:
Тынц №1, Тынц №2
Вячеслав Любомудров
Дата: 01.06.2006 08:43:36
Вопрос не в планах (они могут быть разными), а в принципе работы c NULL-значениями
tst> select * from dual where 1 not in (2, 3);

D
-
X

tst> select * from dual where 1 not in (2, 3, null);

no rows selected
Elic
Дата: 01.06.2006 08:48:34
Cookie
not in
долго долго думает, потом выдает ноль строк
научите, плиз, уму разуму
RTFM Membership Conditions (FAQ)