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

Вниз

Помогите с SQL запросом   Найти похожие ветки 

 
SoundB   (2008-07-09 11:13) [0]

Пожалуйста, помогите, очень нужна помощь.

Не могу отобрать необходимые данные.

Для примера, есть 2 таблицы "Test1" и "Test2"

Test 1

id |  Name     | parID   |
-------------------------+
1  | Пирог     | 200     |
2  | Торт      | 200     |
3  | Печенье   | 200     |
4  | Другое    | 300     |

Test2

id |  Name     | parID   |
-------------------------+
1  | Пирог     | 200     |
2  | Торт      | 200     |

Мне нужен список товаров из таблицы 1 которых нет в таблице 2, связь по ID и ParID

В нашем примере это : Печенье

Попробовал написать самостоятельно, уже 2 часа угробил а написал какую то ерунду:

select t1.* from test1 t1, test2 t2 where (t1.Parid = 200 and t2.Parid = 200 and t1.id <> t2.id)

Помогите плиз, сам не справлюсь (((


 
Правильный^Вася   (2008-07-09 11:17) [1]

для Oracle - MINUS


 
Skyle ©   (2008-07-09 11:18) [2]

SELECT T.*
FROM Test1 T
WHERE NOT EXISTS(SELECT * FROM Test2 WHERE Id = T.PartId)


 
SoundB   (2008-07-09 11:18) [3]

БД: Oracle


> для Oracle - MINUS


А почему минус ?


 
SoundB   (2008-07-09 11:20) [4]


> Skyle ©   (09.07.08 11:18) [2]


Супер, то что надо. Спасибо ОГРОМНОЕ !!!!!


 
Правильный^Вася   (2008-07-09 11:36) [5]


> А почему минус ?

доку потому что
MINUS All distinct rows selected by the first query but not the second


 
clickmaker ©   (2008-07-09 12:34) [6]

select * from tab1
left join tab2 on tab1.id = tab2.id
where tab2.id is null


 
Petr V. Abramov ©   (2008-07-09 12:39) [7]


> Правильный^Вася   (09.07.08 11:17) [1]

для Oracle - [2]


 
Правильный^Вася   (2008-07-09 13:02) [8]


> Petr V. Abramov ©   (09.07.08 12:39) [7]

не вижу аргументов

> Skyle ©   (09.07.08 11:18) [2]

неверная связка таблиц, судя по начинке


 
Skyle ©   (2008-07-09 13:06) [9]


> Правильный^Вася   (09.07.08 13:02) [8]

Ну а в [6] вообще неизвестные таблицы связываются :)


 
Petr V. Abramov ©   (2008-07-09 13:09) [10]


> Правильный^Вася   (09.07.08 13:02) [8]

план посмотри.
для not exists у оракла отдельный очень быстрый алгоритм, "ani-join"


 
Petr V. Abramov ©   (2008-07-09 13:09) [11]

"ani-join" == "anti-join"


 
Правильный^Вася   (2008-07-09 13:10) [12]


> Petr V. Abramov ©   (09.07.08 13:09) [10]

в какой версии?
и зачем ему тогда минус?



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

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

Наверх




Память: 0.49 MB
Время: 0.025 c
15-1214910468
pasha_golub
2008-07-01 15:07
2008.08.24
Отождествление пустой строки и NULL


15-1214918754
iZEN
2008-07-01 17:25
2008.08.24
С сегодняшнего дня прекращены продажи Windows XP


2-1216200887
multiflex
2008-07-16 13:34
2008.08.24
Не полная блокировка файла


15-1215076413
Tonich
2008-07-03 13:13
2008.08.24
Халтурка


2-1216320167
mount
2008-07-17 22:42
2008.08.24
webbrowser