Thread: What is Syntax for multiple FULL OUTER JOINS?
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 TIA Patrick Hatcher Macys.Com Legacy Integration Developer 415-932-0610 office HatcherPT - AIM
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) afull outer join(select f1, f2 from table1 where f3=2) bon a.f1=b.f1)full outerjoin(select f1,f2 from table1 where f3=3) con a.f1=c.f1 should do it I think.
Thanks that did it. Patrick Hatcher Macys.Com Legacy Integration Developer 415-932-0610 office HatcherPT - AIM Stephan Szabo <sszabo@megazone23.big To: Patrick Hatcher <PHatcher@macys.com> panda.com> cc: <pgsql-sql@postgresql.org> Subject: Re: [SQL] What is Syntax for multiple FULL OUTER 03/19/200208:08 PM JOINS? 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) afull outer join(select f1, f2 from table1 where f3=2) bon a.f1=b.f1)full outerjoin(select f1,f2 from table1 where f3=3) con a.f1=c.f1 should do it I think.