원하는 분류로 변경하는 쿼리 0 2 1,570

by 미생 [2017.10.15 11:58:05]


테이블 1 

사과 , 과일

당근, 야채

테이블 2

고객 1 , 사과 , 당근

고객2, 사과, null

원하는 형식

고객1, 과일,야채

이런식으로 조인 할 수 잇를까요?

slelect a.col1, nvl(b.col2, a.col2), nvl(c.col2,a.col3) from t2 a left outer join (select col1, col2 from t1) b on a.col2=b.col1

left outer join (select col1, col2 from t1) c

on a. col3=c.col1

이건 조인에 대한 비용이 너무 커서 못쓸것 같은데

by 그로밋 [2017.10.16 11:30:55]

이런식으로 하는 것도 하나의 방법입니다. 

select distinct a.col1, b.col2 as col2, c.col2 as col3
  from t2 a
  left outer join t1 b on a.col2 = b.col1
  left outer join t1 c on a.col3 = c.col1;

 


by 마농 [2017.10.16 13:12:13]

"이건 조인에 대한 비용이 너무 커서?" 라는 판단이 잘못 된 듯 합니다.
위와 같이 각각의 컬럼별로 조인 하셔도 큰 무리가 없습니다.    
단, 서브쿼리는 불필요 합니다. NVL 도 굳이 필요한지 의문이구요.

SELECT a.col1
     , c2.col2 col2_nm
     , c3.col2 col3_nm
  FROM t2 a
  LEFT OUTER JOIN t1 c2 ON c2.col1 = a.col2
  LEFT OUTER JOIN t1 c3 ON c3.col1 = a.col3
;

 

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