-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Оптимизировать запрос

Пятница, 10 Января 2014 г. 18:27 + в цитатник
SELECT DISTINCT main.Производитель FROM (SELECT DISTINCT  А_Товары.Производитель
FROM А_Наименования INNER JOIN А_Товары ON А_Наименования.id = А_Товары.Наименование
WHERE (((А_Наименования.Медпрепарат)=true))) as main WHERE main.Производитель NOT IN (SELECT temp2.Производитель
FROM [SELECT DISTINCT  А_Товары.Производитель
FROM А_Наименования INNER JOIN А_Товары ON А_Наименования.id = А_Товары.Наименование
WHERE (((А_Наименования.Медпрепарат)=false))]. AS temp1 INNER JOIN [SELECT DISTINCT  А_Товары.Производитель
FROM А_Наименования INNER JOIN А_Товары ON А_Наименования.id = А_Товары.Наименование
WHERE (((А_Наименования.Медпрепарат)=true))]. AS temp2 ON temp1.Производитель = temp2.Производитель);


Задумка такая:
Есть одна таблица, объединяем эту таблицу во "временные" по двум критериям через Inner Join и результат помещает в NOT IN, таким образом мы исключаем совпадения по двум таблицам.
Далее мы выбираем значения из такой же таблицы по первому критерию + мы исключаем повторы, которые в NOT IN.
Но такой запрос "висит" по полной, т.е. выполняется минут 10
Подскажите как можно оптимизировать данный запрос.
Спасибо

http://www.sql.ru/forum/1070091/optimizirovat-zapros


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку