On Fri, 10 Feb 2006, Sergei Dubov wrote:
Quote:
I have two tables, let's say A and B.
B is a child of a in one to many relationship. A contains records that are
not referenced by B.
I am running a query:
select * from A t1 where t1.id not in (select t2.A_id from B t2);
It returns 0 rows.
Now I run
(select t1.id from A t1) except (select t2.A_id from B t2);
And now Postgres correctly returns records from A that are not referenced by
B. |
This may not be a bug, since these two queries will do different things if
there are any nulls in B.A_id according to spec AFAIK. The short form is
that rvc NOT IN (<subselect returning nulls>) will not return true.
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match