Monday, September 29, 2008

Re: [GENERAL] subquery in FROM must have an alias

Thanks to Stephan and Hubert for their replies. Using your answers I
was able to solve the problem. It turned out that its a natural join
that I wanted.

Thanks for quick help,
Ashutosh

On Sun, Sep 28, 2008 at 10:18, Stephan Szabo
<sszabo@megazone.bigpanda.com> wrote:
> On Sun, 28 Sep 2008, Ashutosh Chauhan wrote:
>
>> Hi all,
>>
>> This has been asked before and answered as well.
>> http://archives.postgresql.org/pgsql-sql/2007-12/msg00002.php but I
>> still cant figure out why postgres throws this error message even when
>> I have provided the aliases. My query:
>>
>> select a,b
>> from (billing.item JOIN (
>> select *
>> from ( billing.invoice JOIN billing.customer
>> on (id_customer_shipped = customer_uid and
>> address = 'pgh' ))
>> as temp2 ))
>> as temp;
>>
>> I have two from clauses so I have provided two corresponding alias
>> names for those two from clauses.
>
> If you break the above down a bit, you have:
>
> select a,b
> from
> (
> billing.item join
> (select * from
> (
> billing.invoice join
> billing.customer
> on (id_customer_shipped = customer_uid and address='pgh')
> )
> as temp2
> )
> )
> as temp;
>
> What the system is complaining about is the subselect (select * from ... )
> not having an alias. You've aliased the billing.invoice join
> billing.customer one and (billing.item join (...)) one, but not the
> subselect. In fact, I believe the two aliases you're using aren't strictly
> necessary. Also, the above appears to be missing the condition for the
> outermost join.
>
> Maybe something like the following will work with a filled in on
> condition:
>
> select a,b
> from
> (
> billing.item join
> (select * from
> (
> billing.invoice join
> billing.customer
> on (id_customer_shipped = customer_uid and address='pgh')
> )
> )
> as temp
> on (...)
> )
>
>
>

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

No comments: