Здравствуйте, Буравчик, Вы писали:
Б>Б>SELECT a, t
Б>FROM (
Б> SELECT a, x as t FROM TableA
Б> UNION
Б> SELECT a, y as t FROM TableB)
Б>WHERE a < :p1 AND a > :p2
Б>
Б>Вроде ж понятно, что операцию WHERE лучше применить сначала к TableA и TableB (используя индексы), а потом уже делать UNION.
А вот непонятно. Where по правилам синтаксиса относится к последнему select, а не ко всем. Что логично, ибо как отделить общий для всех where от специфичного для таблицы?