데이터 베이스 아웃터 조인시 실수

데이터 베이스 아웃터 조인시 실수

1
2
3
4

select * from test_a as a left join test_b as b on a.key = b.a_key
where b.use_yn = 'Y'

위처럼 아웃터 조인을 실행을 시키면서 실행계획을 보면 아래 처럼 나온다.

데이터 베이스 아웃터 조인시 실수1

위처럼 아우터 걸리는 테이블에 조건이 where 절에 걸리게 되면 해당 조인은 inner join으로 실행 된다.

아웃터를 걸고 싶으면 아래처럼 조건을 on 절에 포함 시켜야 된다

1
2
3

select * from test_a as a left join test_b as b on a.key = b.a_key and b.use_yn = 'Y'

데이터 베이스 아웃터 조인시 실수2

제대로 아웃터 조인이 걸리게 된다.

참조