Re: Strange behavior on non-existent field in subselect?

Поиск
Список
Период
Сортировка
От Ragnar
Тема Re: Strange behavior on non-existent field in subselect?
Дата
Msg-id 1161129396.9076.180.camel@localhost.localdomain
обсуждение исходный текст
Ответ на Strange behavior on non-existent field in subselect?  (Ken Tanzer <ktanzer@desc.org>)
Ответы Re: Strange behavior on non-existent field in subselect?  (Ken Tanzer <ktanzer@desc.org>)
Список pgsql-general
On þri, 2006-10-17 at 15:58 -0700, Ken Tanzer wrote:
> We're a little puzzled by this (apparently) strange behavior, and would
> be curious to know what you folks make of it.  Thanks.

not sure exactly what you are referring to, but:
(rearranged quotes to group output with SQL)

> SELECT foo_field FROM par;
> psql:strangefield.sql:11: ERROR:  column "foo_field" does not exist

hopefully, no mystery here.


> SELECT foo_field FROM foo WHERE foo_field IN (SELECT foo_field FROM par);

if par is empty, then this SELECT will return 0 rows,
otherwise it is equivalent to SELECT foo_field from foo

>  foo_field
> -----------
> (0 rows)

foo is empty, so no rows returned

> INSERT INTO foo VALUES (1);
> SELECT foo_field FROM foo WHERE foo_field IN (SELECT foo_field FROM par);
>   foo_field
> -----------
> (0 rows)

par is empty, so the IN operator fails for the foo row

> INSERT INTO par VALUES (1);
> SELECT foo_field FROM foo WHERE foo_field IN (SELECT foo_field FROM par);
>   foo_field
> -----------
>           1
> (1 row)

when par contains at least one row, the subselect will
return foo_field once per row of par.
the IN operator will ignore duplicates, so the result
is the same for any number of rows in par greater than 0

gnari



В списке pgsql-general по дате отправления:

Предыдущее
От: Ken Tanzer
Дата:
Сообщение: Strange behavior on non-existent field in subselect?
Следующее
От: Ron Johnson
Дата:
Сообщение: Fixed-point scalars?