Thread: RE: [HACKERS] JOIN syntax. Examples?

RE: [HACKERS] JOIN syntax. Examples?

From
"Jackson, DeJuan"
Date:
> -----Original Message-----
> Thomas G. Lockhart wrote:
> > 
> > > The book "The Practical SQL Handbook", which is often 
> recommended on
> > > these lists, uses the syntax `*=' and `=*' for left and 
> right outer
> > > joins (page 211).  I think we ought to support this 
> syntax as well,
> > > since it will save new users from confusion.
> > 
> > This one conflicts with Postgres' operator extensibility 
> features, since
> > it would look just like a legal operator.
> 
> so does =
> 
> Could it be possible to extend the operator extensibility features 
> to achieve the behaviour of outer/cross joins ?
> 
> > The two books I have at hand (besides my old Ingres docs) 
> are A Guide to
> > the SQL Standard by Date and Darwen and Understanding the New SQL by
> > Melton and Simon. Both focus on SQL standard syntax, and 
> neither mention
> > the various outer join syntaxes accepted by Oracle, 
> Informix, or Sybase.
> 
> Has anybody tried out DB2 ?
> 
> I have downloaded it (for linux) but have not yet tried it.
>  
> > An explanation for the lack of standards compliance by the big three
> > probably involves the fact that they predate the standard by a
> > significant number of years.
> 
> Not to mention that both =* and =(+) are more concise and easier to 
> follow, at least for one with my headshape.
> 
> The standard is probably the 'worst common denominator' or something 
> like that :(
> 

Microsoft SQL Server v6.5 also support the Sybase syntax =* and *=, but
I found that syntax for more limiting than the SQL92 Standard syntax.
I'm not sure how it would be implemented in Postgres but in both Sybase
and M$ SQL you couldn't perform an Outer Join on an Outer Joined table
using the =* *= syntax.  Also, we'd need an extension for cross join,
*=*. 

My vote is to implement the SQL92 Standard, it's far more flexible and
we don't have to shift with the tide when Oracle decides to change to %=
=% to be it's join operators. 

And if it makes anyone feel better; the M$ SQL v6.5 docs state that *=
=* would be depreciated in M$ SQL v7.0.   Haven't seen 7.0 so don't know
if they went through with it (or will).-DEJ