테이블 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
이건 조인에 대한 비용이 너무 커서 못쓸것 같은데
이런식으로 하는 것도 하나의 방법입니다.
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;
"이건 조인에 대한 비용이 너무 커서?" 라는 판단이 잘못 된 듯 합니다.
위와 같이 각각의 컬럼별로 조인 하셔도 큰 무리가 없습니다.
단, 서브쿼리는 불필요 합니다. 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
;