Thread: No error reported when field in subselect is not part of the table but exists in the main table.

There is no error reported when a field in the subselect is not part of
the subselect table
but exists in the main table.

Try This:

nsd=# create table a ( f1 int, f2 text);
CREATE
nsd=# create table b ( f3 int, f4 text);
CREATE
nsd=# select * from a where f1 in ( select f1 from b);
 f1 | f2
----+----
(0 rows)

nsd=# select version();
                           version
-------------------------------------------------------------
 PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
(1 row)

Re: No error reported when field in subselect is not part of

From
Stephan Szabo
Date:
On Mon, 27 Jan 2003, Jean-Luc Lachance wrote:

> There is no error reported when a field in the subselect is not part of
> the subselect table
> but exists in the main table.
>
> Try This:
>
> nsd=# create table a ( f1 int, f2 text);
> CREATE
> nsd=# create table b ( f3 int, f4 text);
> CREATE
> nsd=# select * from a where f1 in ( select f1 from b);
>  f1 | f2
> ----+----
> (0 rows)

That's because f1 is taken as an outer reference.  I think
that's the expected/correct behavior.