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 <[EMAIL PROTECTED]> 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