плохой вопрос / детали вопроса, зная лучший контекст того, что вы хотите, даже если сокращенные поля и фактические таблицы могут помочь лучше в будущем.Тем не менее, похоже, что вы хотите, это условие «IN», основанное на ЛИБО из условий с псевдонимом «C».Не видя их, вы можете посмотреть на это так (или упростить оба критерия за секунду).
select
v.*
from
VTable v
LEFT JOIN CTable C0
on v.SomeField = C0.SomeField
LEFT JOIN CTable C1
on v.SomeOtherField = C1.SomeOtherField
where
c0.SomeField IS NOT NULL
OR c1.SomeField IS NOT NULL
ИЛИ ... упростить с помощью одного левого соединения, объединяя оба критерия
select
v.*
from
VTable v
LEFT JOIN CTable C0
on ( ( v.SomeField = C0.SomeField )
OR ( v.SomeOtherField = C0.SomeOtherField ) )
where
c0.SomeField IS NOT NULL
Я использовал дополнительные скобки в вышеприведенном запросе на случай, если исходные условия C0 и C1 были сами по себе сложными.
Итак, то, что вы описали как белую область в таблице "V" на простом английском, это датья все из таблицы V, которая не соответствует ни условия C0 или C1.Следовательно, выполняется левое соединение, а затем ОБЕСПЕЧИВАЕТСЯ, что они ДЕЛАЮТ, проверяя, чтобы любой столбец (хотя ожидается, что ключевой столбец) явно БЫЛ НЕДЕЙСТВИТЕЛЕН (следовательно, он существует в критериях таблицы C).