Обсуждение: What is Syntax for multiple FULL OUTER JOINS?

Поиск
Список
Период
Сортировка

What is Syntax for multiple FULL OUTER JOINS?

От
"Patrick Hatcher"
Дата:
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





Re: What is Syntax for multiple FULL OUTER JOINS?

От
Stephan Szabo
Дата:
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.



Re: What is Syntax for multiple FULL OUTER JOINS?

От
"Patrick Hatcher"
Дата:
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.