Re: JOIN syntax - Mailing list pgsql-sql

From Thomas Lockhart
Subject Re: JOIN syntax
Date
Msg-id 3956D7EE.3519A134@alumni.caltech.edu
Whole thread Raw
In response to JOIN syntax  ("Oliver Elphick" <olly@lfix.co.uk>)
List pgsql-sql
> Looking at SQL92, it seems that I ought to be able to do this:
> SELECT * FROM invoice INNER JOIN
>  (SELECT * FROM invoice_line WHERE lineno > 1)
>  ON invoice.invno = invoice_line.invno;
> ERROR:  parser: parse error at or near "("

Wrong syntax (for Postgres anyway). We don't yet have subselects in the
syntax. Thanks for the example though; it seems like some variant should
be allowed, though perhaps not as written above.

Something like
 select * from invoice inner join   (select * from invoice_line where lineno > 1)     as IL (invno, yada)   on
invoice.invno= IL.invno;
 

seems like it could be legal. Your variant of this may have trouble
hooking up invoice_line.invno after the subselect, since the subselect
result may lose the linkage with the underlying input table.

But, all this is theoretical, since Postgres doesn't yet do the right
thing at all.
                       - Thomas


pgsql-sql by date:

Previous
From: "Oliver Elphick"
Date:
Subject: JOIN syntax
Next
From: Kyle Bateman
Date:
Subject: finding (and recycling) holes in sequences