Добрый день.
Есть простой запрос, суть которого состоит в том, что перед union'ом выполняется выборка из заданного перечня my_set,
а после union'a происходит выборка только из тех оставшихся элементов множества my_set, которые не вошли в первый подзапрос:
select tbl1.id, tbl1.f2, tbl2.f3
from tbl1
join tbl2 on tbl1.id in (my_set) and tbl2.f1=tbl1.f2 ...
where ...
union
select tbl3.f1, tbl3.f2, tbl2.f3
from tbl3
join tbl2 on tbl3.id in (my_set) and tbl3.id not in (select id from tbl1 where id in (my_set))
где my_set = 1, 2,.., n
Скажите, пожалуйста, можно ли как то у простить данный запрос, не приведет ли строка после union'a
join tbl2 on tbl3.id in (my_set) and tbl3.id not in (select id from tbl1 where id in (my_set))
к замедлению?