Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

Соединение таблиц на основе НЕвхождения   Найти похожие ветки 

 
B   (2005-09-01 15:11) [0]

Такой вопрос наверняка всплывал много раз, но не знаю как искать...

Задача - получить записи, которые НЕ входят в подзапрос:

Select T.*
from BASE1 T,(SELECT ttt.text bas_text, ttt.id bas_id
                     FROM o_tree ttt
                     CONNECT BY ttt.owner_id = PRIOR ttt.id
                     START WITH ttt.id = 288007) tree


Если задать
where T.id IN bas_id
все нормально - возвращаются только строки, входящие в позапрос

Если задать
where T.id NOT IN bas_id
В ответ возвращается сонмище строк, кажется, оно называется Декартовым.


 
DenK_vrtz ©   (2005-09-01 15:16) [1]

Использовать NOT EXISTS


 
Виталий Панасенко   (2005-09-01 15:18) [2]

Это MS SQL ? С им не работал, но в стандарте вроди так
select * from table where id not in (select id from table2 where ...)


 
B   (2005-09-01 16:54) [3]

Это Oracle...
Он так тоже позволяет, результат будет тем же
Но в силу того, что надо проверять и другие данные из позапроса приходится писать его в FROM

NOT EXISTS не помог :(

Выражение
elect distinct T.*
from Base1 T
where exists (SELECT ttt.text bas_text, ttt.id bas_id
                     FROM o_tree ttt
                     CONNECT BY ttt.owner_id = PRIOR ttt.id
                     START WITH ttt.id = 288007)

вернуло то же что и IN,

а если заменить на NOT EXISTS, вообще ничего не возвращает :(


 
Desdechado ©   (2005-09-01 17:05) [4]

в Оракле есть в SELECT такая хитрая опция MINUS - не оно ли это?


 
ANB ©   (2005-09-01 17:18) [5]


> B   (01.09.05 16:54) [3]

1. Читать в справке описание not exists
2. Тут лучше not in


 
B   (2005-09-01 17:20) [6]

Спасибо.
MINUS, похоже, подошел.


 
Val ©   (2005-09-01 17:25) [7]

может что-то типа этого:

Select T.*
from BASE1 T
where not exists (SELECT 1
                       FROM o_tree ttt
                       where ttt.id = t.id
                       CONNECT BY ttt.owner_id = PRIOR ttt.id
                       START WITH ttt.id = 288007) tree


 
Fay ©   (2005-09-01 18:06) [8]

B   (01.09.05 17:20) [6]
Oracle, что-ли? Надо сразу говорить.



Страницы: 1 вся ветка

Текущий архив: 2005.10.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
3-1125926607
AndrewK
2005-09-05 17:23
2005.10.16
Хранение справочников в одной таблице. Предлагаю обсудить идею.


2-1126707473
Anton22
2005-09-14 18:17
2005.10.16
StatusBar


14-1127666296
fastorla
2005-09-25 20:38
2005.10.16
Как можно подчепить SubItem в компоненте TreeView1


9-1118216589
Novouralsk
2005-06-08 11:43
2005.10.16
Плагин для 3ds Max!


2-1127000813
Mid
2005-09-18 03:46
2005.10.16
как переместить изображение с одной Панели на другую, если...