| 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: | Whole Thread | Raw Message | 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.
| 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? |