Re: full outer join question

From: lokys <i4paga_at_yahoo.com>
Date: 20 Aug 2003 09:01:44 -0700
Message-ID: <3d5fe109.0308200801.170fe50_at_posting.google.com>


I think it is imposible I sujest longer and not prety way:

(select A.a, A.b, A.c, B.c
from A ,B
where A.a = B.a(+)
union
select A.a, A.b, A.c, B.c
from A ,B
where A.a (+)= B.a )

union

(select A.a, A.b, A.c, C.c
from A ,C
where A.a = C.a(+)
union
select A.a, A.b, A.c, C.c
from A ,B
where A.a (+)= C.a )

and so on :)) I dont't know how else you can outer join 4 tables without rethinking design

"Dave" <adavi_at_comcast.net> wrote in message news:<HHz0b.203937$uu5.36905_at_sccrnsc04>...
> Hi
>
> I have the following 4 tables and I need to do a fully outerjoin on them.
>
> create table A (a number, b number, c char(10), primary key (a,b))
> create table B (a number, b number, c char(10), primary key (a,b))
> create table C (a number, b number, c char(10), priamry key (a,b))
> create table D (a number, b number, c char(10), priamry key (a,b))
>
> In oracle 9i, the following query returns correct results set, if I were to
> join just 2 tables - A & B
>
> select A.a, A.b, A.c, B.c
> from A full outer join B on
> ((A.a = B.a) and (A.b = B.b))
>
> How do I extend this query to do a 4-way join ? Do you think the following
> query would work or is there a simpler way ?
>
> select A.a, A.b, A.c, B.c, C.c, D.c
> from
> A full outer join B on
> ((A.a=B.a)) and (A.b = B.b))
> full outer join C on
> ((A.a = C.a) and (A.B = C.b)) OR ((B.a = C.a) and (B.b = C.b))
> full outer join D on
> ((A.a = D.a) and (A.b = D.b)) OR ((B.a = D.a) and ((B.b =
> D.b )) OR ((C.a = D.a) and (C.b = D.b))
>
>
> ;
Received on Wed Aug 20 2003 - 18:01:44 CEST

Original text of this message