수정) 오라클 쿼리 조인 질문입니다! 0 4 654

by 계란에그 [2016.10.06 11:41:42]


A B C 테이블이 있습니다!

A테이블에는 장난감,블럭,code 의컬럼이잇고

B테이블에는 장난감,블럭,code 의 컬럼이들어있습니다 그리고

C테이블에는 장난감,블럭,code, n_code,n인형 이 이렇게있구요

 

select 장난감, 블럭, CODE from A , B C

where A.code = C.n_code(+)

and C.n_code = B.code(+)

이런식으로 하고잇는데

데이터결과는

  a.장난감 a.블록 C.n_code a.code b.code b.인형 a.넘버락
  강아지 나노 549143 549143 549143 공주 1
  로봇 나노2   549840     2

 

위에 나오는 이유는 알겟는데 이제 제가 하고싶은것은

C.n_code가 null인경우는 b코드의 인형을 하지만 저위의방법으로 하려고하면 b가 null로나옵니다(원래는 code가 존재)

C.n_code와 a.code와 같은경우는 C테이블의 인형을 출력하고싶은데 어덯게해야하나요

by Kyle [2016.10.06 13:22:33]
C 테이블의 n_code 값의 null 여부를 체크 할 필요 없이 A 와 B 테이블을 조인하면 되지 않나요?
조인하지 못할 이유라도 있나요?

select 장난감, 블럭, CODE from A , B C
where A.code = C.n_code(+)
    and A.code = B.code(+)

 


by jkson [2016.10.06 13:27:53]

a의 code가 b의 code와 같으면 b의 인형 컬럼을 출력한다..

그렇다면 동시에 a의 code가 c의 n_code와 같으면 어떻게 출력하나요?


by 계란에그 [2016.10.06 13:34:33]

아 그경우는 c의 인형을 출력하고싶습니다.


by jkson [2016.10.06 13:36:45]
SELECT 장난감
     , 블럭
     , A.CODE
     , NVL(C.인형, B.인형) 인형
  FROM A, B, C
 WHERE A.CODE = C.N_CODE(+)
   AND A.CODE = B.CODE(+)

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입