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

Reply via email to