Re: Why does this SQL work? - Mailing list pgsql-general

From Anil Menon
Subject Re: Why does this SQL work?
Date
Msg-id CAHzbRKdZKhLTJx3jjwT4y=CBxfm7wB3NdDG6wD_RXedhv2U7KQ@mail.gmail.com
Whole thread Raw
In response to Re: Why does this SQL work?  (Victor Yegorov <vyegorov@gmail.com>)
List pgsql-general
Thank you very much - looks like I will have to prefix all cols.

Regards
AK

On Tue, May 12, 2015 at 3:05 AM, Victor Yegorov <vyegorov@gmail.com> wrote:
2015-05-11 19:26 GMT+03:00 Anil Menon <gakmenon@gmail.com>:
manualscan=> select count(*) From public.msgtxt where msgid in (select msgid From ver736.courier where org_id=3);
 count
-------
 10225
(1 row)

Please note, there is no msgid col in courier table. Which brings the question why does this SQL work? An "select msgid From courier where org_id=3" by itself gives error column "msgid" does not exist.

Because you can reference both, inner and outer columns from the inner query.
Here you're most likely referring to the outer `msgid` in the subquery.

That's why it is always a good idea to prefix all your columns with tables aliases.


--
Victor Y. Yegorov

pgsql-general by date:

Previous
From: "Wayne E. Seguin"
Date:
Subject: Re: [BDR] Node Join Question
Next
From: Steve Kehlet
Date:
Subject: Re: finding tables about to be vacuum freezed