Пятница, 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
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-