Re: What is Syntax for multiple FULL OUTER JOINS?

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Patrick Hatcher <PHatcher(at)macys(dot)com>
Cc: <pgsql-sql(at)postgresql(dot)org>
Subject: Re: What is Syntax for multiple FULL OUTER JOINS?
Date: 2002-03-20 04:08:39
Message-ID: 20020319200610.W40360-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Tue, 19 Mar 2002, Patrick Hatcher wrote:

> Is it possible to do a full outer join on 3 or more queries? I figured out
> how to do 2, but I get an error message when trying to do three
>
>
> Example:
>
> (works)
> select coalesce(a.f1, b.f1) as col_1, b.f2 as col_2
> from
> (select f1, f2 from table1 where f3 =1) a
> FULL OUTER JOIN
> (select f1, f2 from table1 where f3 =2) b
> on a.f1 = b.f1
>
> (does not work)
> select coalesce(a.f1, b.f1,c.f1) as col_1, b.f2 as col_2, c.f2 as col_3
> from
> (select f1, f2 from table1 where f3 =1) a
> FULL OUTER JOIN
> (select f1, f2 from table1 where f3 =2) b
> FULL OUTER JOIN
> (select f1, f2 from table1 where f3 =3) c
> on a.f1 = b.f1and a.f1 = c.f1

You need separate on clauses for each join:
select ...
from (
(select f1, f2 from table1 where f3=1) a
full outer join
(select f1, f2 from table1 where f3=2) b
on a.f1=b.f1)
full outer join
(select f1,f2 from table1 where f3=3) c
on a.f1=c.f1

should do it I think.

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message german pulido 2002-03-20 15:26:30 plpgsql how to iterate through record values?
Previous Message Patrick Hatcher 2002-03-20 03:28:20 What is Syntax for multiple FULL OUTER JOINS?