Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отобрать записи из Т1 для которых нет записей в Т2? [D3, IB6.x]


Stupid ©   (2004-04-29 12:02:00) 

Извиняюсь за глупый вопрос, но сейчас под рукой нет книги по SQL, а срочно надо :

Select Id_PrM, CP_Num, Pr_PNum, Pr_Nos
From Proj_Maks, Projekt, Dar_Aprek
Where Proj_Maks.Id_Pr = Projekt.Id_Pr and
           Dar_Aprek.Id_pr = Projekt.Id_Pr
Order By Pr_PNum, CP_Num

Данный запрос отбирает записи из Proj_Maks для которых есть записи в Dar_Aprek.
А как отобрать записи из Proj_Maks для которых нет записей в Dar_Aprek.


Stupid   (2004-04-29 12:35:00) [1]

Если я всё правильно сделал - 1й быстрее второго и намного

Select Id_PrM, CP_Num, Pr_PNum, Pr_Nos, Id_Pr
From Proj_Maks, Projekt
Where Proj_Maks.Id_Pr = Projekt.Id_Pr and
Not Exists (Select Id_Pr From Dar_Aprek Where Dar_Aprek.Id_Pr = Projekt.Id_Pr)
Order By Pr_PNum, CP_Num

Select Id_PrM, CP_Num, Pr_PNum, Pr_Nos, Id_Pr
From Proj_Maks, Projekt
Left Join Dar_Aprek on Dar_Aprek.Id_pr = Projekt.Id_Pr
Where Proj_Maks.Id_Pr = Projekt.Id_Pr and Dar_Aprek.Id_pr is null
Order By Pr_PNum, CP_Num


Stupid   (2004-04-29 12:23:00) [2]

Чем сейчас и занимаюсь


sniknik   (2004-04-29 12:16:00) [3]

советую кроме поиска пользоваться еще и головой и руками. ;)

проверь оба варианта на скорость на своих таблицах, и сам реши какой для тебя правильнее.


Stupid   (2004-04-29 12:12:00) [4]

Спасибо!!!
А какой вариант быстрее или правильнее?


Johnmen   (2004-04-29 12:05:00) [5]

http://www.sql.ru/forum/actualthread.aspx?bid=2&tid=9187

А вообще советую пользоваться поисковыми серверами...:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо