Re:

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Waldemar Bergstreiser <littlesuspense(at)web(dot)de>
Cc: Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re:
Date: 2009-06-30 14:26:43
Message-ID: 17347.1246372003@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Waldemar Bergstreiser <littlesuspense(at)web(dot)de> writes:
> Just try to rewrite query below with left outter joins. I had not found any compact syntax.

> select * from a, outer( b, outer c), outer (d, outer f )
> where a.b_id = b.id and b.c_id = c.id and a.d_id = d.id and d.f_id = f.id;

This has got pretty much the same problem as Oracle's syntax: there's no
principled way to decide what it *means*. Which join is each of the
WHERE conditions supposed to be attached to, and why? What do you do if
you want a behavior slightly different from whatever the engine decides
it means?

The standard's syntax is a bit more verbose, but at least it's perfectly
clear which conditions are outer-join conditions and which are filters.

regards, tom lane

In response to

  • Re: at 2009-06-30 08:00:04 from Waldemar Bergstreiser

Browse pgsql-general by date

  From Date Subject
Next Message regis.boumera 2009-06-30 14:30:12 Data corruption (8.2.5 Windows XP)
Previous Message Tom Lane 2009-06-30 14:22:09 Re: Unexpected behaviour of date_part