Re: Can "NOT IN" be expressed in a single block query?



I made mistake.

For NOT IN case:
SELECT col_a, col_b, ...
FROM (SELECT expression_a1, expression_a2, ...
FROM <table-reference-a>
WHERE condition_a) S(col_a, col_b, ...)
WHERE col_a NOT IN (SELECT expression_b
FROM <table-reference-b>
WHERE condition_b);

Rewrited Query should be:
SELECT expression_a1 AS col_a, expression_a2 AS col_b, ...
FROM <table-reference-a>
LEFT OUTER JOIN
<table-reference-b>
ON condition_b
AND expression_a1 = expression_b
WHERE condition_a
AND expression_b IS NULL;





.