Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   Delphi (https://nowa.cc/forumdisplay.php?f=300)
-   -   Сложный запрос adoquery (https://nowa.cc/showthread.php?t=378590)

dreich 21.11.2012 10:56

Сложный запрос adoquery
 
Помогите, плиз, составить запросик:
есть две таблицы dbf. В одно около 12000 записей, в другой 341.
Необходимо из первой таблицы исключить все записи второй таблицы по двум полям (все 341 записи есть в первой таблице). Делаю так:

select table1.* from table1 left join table2 on table1.поле1 <> table2.поле1 and table1.поле2 <> table2.поле2

Запрос выполняется минут двадцать, грузит проц на 100% и в результате выдет 3 млн строк!!!

Ниче не пойму.:(

BookkeeperW 22.11.2012 09:22

Re: Сложный запрос adoquery
 
SELECT * FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE table1.pole1 = table2.pole1 AND table1.pole2 = table2.pole2)
Если я правильно понял, то наверное так...

dreich 22.11.2012 10:33

Re: Сложный запрос adoquery
 
Цитата:

Сообщение от BookkeeperW (Сообщение 4422299)
SELECT * FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE table1.pole1 = table2.pole1 AND table1.pole2 = table2.pole2)
Если я правильно понял, то наверное так...

Спасибо, работает.
А я придумал вот так - тоже работает:
SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.pole1 = table2.pole1 and table1.pole2 = table2.pole2 WHERE table2.pole1 IS NULL and table2.pole2 is null

BookkeeperW 22.11.2012 10:42

Re: Сложный запрос adoquery
 
SQL-запросы сильная штука...
Удачи)))

человек_45 03.11.2014 20:59

Re: Сложный запрос adoquery
 
1) Добавляем индексы на столбцы, если возможно.
2) В вашем запросе, излишен table2.pole1 IS NULL
3) используем not in , но EXISTS оптимален.
3) в оракле есть minus
4) mssql EXCEPT http://msdn.microsoft.com/ru-ru/library/ms188055.aspx
--
изучайте sql-ex.ru там есть все, что нужно.


Текущее время: 21:45. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.02257 секунды с 9 запросами