Вы также можете использовать подвыбор с NOT IN
или EXISTS
.
Составьте список того, что вы хотите исключить в подзапросе, с условием соединения, связывающим его с внешним запросом.
И.Е.
WHERE MainTableKey NOT IN (SELECT ForeignKey from MyTable2
WHERE DoNotInclude = 1)
EDIT:
Альтернативный раствор, используйте EXCEPT
Псевдокод будет:
SELECT col1, col2, col3
FROM ComplexQuery
EXCEPT
SELECT Col1, Col2, Col3
FROM MyTable t1
INNER JOIN Table2 t2
ON LEFT(t1.Drugname, 5) = LEFT(t2.drugname, 5)
AND t1.WeightCode = 2
За исключением удаления второго набора результатов из первого набора результатов. Единственный улов - вам нужно вернуть одинаковые поля в обоих наборах, как в UNION
.