Обсуждение: No error reported when field in subselect is not part of the table but exists in the main table.

Поиск
Список
Период
Сортировка

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

От
Jean-Luc Lachance
Дата:
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

От
Stephan Szabo
Дата:
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.