Podzapytanie PostgreSQL z błędem składni daje poprawny wynik
Co tu się dzieje?
Mam dwie tabele, test1 i test2:
create table test1 (id1 int4 primary key);
create table test2 (id2 int4 primary key);
Zgodnie z oczekiwaniami to zapytanie:
select id1 from test2;
powoduje błąd składniowy:
ERROR: column "id1" does not exist
LINE 1: select id1 from test2;
Jednak gdy próbuję wykonać to zapytanie:
select * from test1 where id1 in (select id1 from test2);
PostgreSQL nie narzeka, wykonuje zapytanie i daje mi:
id1
-----
(0 rows)
Czy jest w tym jakaś logika? Czy powinienem zgłosić błąd?