и T2. T2 включает все колонки T1 и еще одну колонку Col.
Для этих таблиц сделал Merge таблицу.
Написал запрос:
select {columns from T1}
from merge
where common_clauses and (_table = 'T1' and clauses or _table = 'T2' and Col in (v1, v2))
То есть хотел сделать запрос, который по столбцам, которые есть только в T1, проверит набор условий clauses и так же пропустит все записи из T2, которые подойдут по фильтру Col in (v1, v2).
Запрос не выполняется, говорит, что в T1 нет колонки Col.
При этом следующий запрос выполняется без ошибок:
select {columns from T1}
from merge
where common_clauses and _table = 'T2' and Col in (v1, v2)
А такой - выдает ошибку:
select {columns from T1}
from merge
where
(common_clauses and _table = 'T2' and Col in (v1, v2))
or
(common_clauses and _table = 'T2' and Col in (v1, v2))
Возможно ли как то обойти данную проблему?
нет. Engine=Merge тут не подходит Либо union all Либо одинаковый набор колонок, но так как условие _table = 'T2' обрабатывается *скажем последним то читаться T2 будет всегда
Обсуждают сегодня