database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 38798 게시물 읽기
No. 38798
양쪽 아우터 조인과 같은 결과를 얻을려면
작성자
윤명철(nidty)
작성일
2011-08-19 09:56
조회수
5,305

 

아 머리가 아픕니다.

a라는 테이블에서 pk 1, pk2, pk3 을 갖고  i 라는 컬럼의 내용을

 b라는 테이블에서pk 1, pk2, pk3 을 갖고  j 라는 컬럼의 내용을

a에 포함되거나 b에 포함된 결과를 하나라도 포함하면 결과를 뿌려줘야됩니다.

같이 포함되는 결과는 한줄에 두 테이블의 내용이 컬럼이 다르게 들어가야됩니다.

 

만드는 방법을 생각한것은

a라는 테이블의 내용과 b라는 테이블 내용을 없는 컬럼은 가짜로 null 값으로 컬럼생성후

 union all 해서

group by 로 묶어 문자든 숫자든 상관없이 max 값으로 뽑을까 하는데 보통 이런경우 어떻게 처리하는지 궁금합니다.

예 :

select pk 1, pk2, pk3
      ,max(i)
      ,max(j)

 from (
         select  pk 1, pk2, pk3
               , i
               , null as j
          from a
      union all
         select  pk 1, pk2, pk3
                    , null as i
                  , j
         from b
       )
group by pk 1, pk2, pk3
 

 

또하나의 경우는

위와 같은 내용인데 한 테이블에서 pk값이 누락된 경우입니다.

테이블1 은  pk 1, pk2, pk3에 컬럼 u

테이블2는 pk1, pk2          에 컬럼 w

에서 조회되야 되는 조건은 pk 1, pk2, pk3 에 컬럼 u, w 입니다.

테이블 1에 테이블 2가 없다면 u,  w 는 0 값으로 컬럼에 내용을 넣어주고

테이블 1에 테이블 2가 포함된다면 (pk1, pk2 가 있다면)u,  w 컬럼에 내용을 넣어주고

테이블 1에 없는 값이면 pk3을 강제로 0으로 생성해서  u 는 0, w는 값으로 뽑아야됩니다.

 

 

 

3개의 테이블을 이렇게 합집합을 구해야되는 상황입니다.

리스트업 기준 테이블이 3개고 이 3개중에 하나라도 값이 있다면 뿌려야되는데

이중 한테이블은 pk컬럼이 하나 누락되어 있고

그외 참조해야되는 테이블들이 6개 정도됩니다.

 

부탁드립니다.

이 글에 대한 댓글이 총 2건 있습니다.

양쪽 아우터 조인은 full outer join 이라고 하고 ansi sql 사용하시면 됩니다만...

select * from a full outer join b on a.pk1=b.pk1 and a.pk2=b.pk2 and a.pk3=b.pk3

이런식으로 하시면됩니다.

 

추가로 where 절 사용도 가능합니다..

오라클 8i 부터 지원하고있습니다.

1님이 2011-08-19 10:11에 작성한 댓글입니다. Edit

답변 감사합니다.

양쪽 아우터 조인이 가능하였군요 ^^;;

윤명철(nidty)님이 2011-08-19 11:33에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38802명시적 조인시 테이블 3개를 조인할때는 어떻게 해줘야되는지 모르겠습니다. [3]
윤명철
2011-08-19
8252
38801UPDATE 문에 관한 질문입니다.- 날짜 강제 변경 [1]
이상영
2011-08-19
4175
38800고수님들의 도움 간절히 원합니다...ㅜㅜ [3]
일쌍다반사
2011-08-19
7486
38798양쪽 아우터 조인과 같은 결과를 얻을려면 [2]
윤명철
2011-08-19
5305
38796remote 조인시 속도문제 [2]
고운님
2011-08-18
4237
38795emctl start dbconsole. 에러
황태봉
2011-08-18
3721
38794오렌지 실행 에러 [3]
오렌지
2011-08-18
17865
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다