Re: Why does this SQL work?

From: Victor Yegorov <vyegorov(at)gmail(dot)com>
To: Anil Menon <gakmenon(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Why does this SQL work?
Date: 2015-05-11 19:05:42
Message-ID: CAGnEbojvNhei9qGhB4GTbgytAOhkD6rKZK+a=gS22qsz4DameQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

2015-05-11 19:26 GMT+03:00 Anil Menon <gakmenon(at)gmail(dot)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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Peter Eisentraut 2015-05-11 19:58:56 Re: RPM building tools and info missing?
Previous Message hubert depesz lubaczewski 2015-05-11 19:05:15 Re: Why does this SQL work?