아웃 조인에 대한 의문 0 1 2,211

by 스물일곱 [SQL Query] [2011.11.21 16:04:04]


안녕하세요. 스물일곱이라고 합니다.

쿼리 작성시에 아웃조인에 대한 의문 점이 생겨서 정확히 알고자 고수님들에게 문의를 드립니다.

의문)
A테이블과 B테이블이 있는데 KEY컬럼으로 조인을 하면서 B테이블쪽에 아웃조인을 해놓은 상태입니다.
이상태에서 B테이블의 특정컬럼에 =, NOT IN , IN, LIKE등의 조건을 할 경우 옵티마이저는 기존 KEY컬럼을 어떤 조인으로 움직이게 되는가요?

제가 알고 있기론 B테이블의 특정컬럼에 걸어놓은 NOT IN, IN, LIKE컬럼때문에 KEY컬럼에 걸어놓은 아웃조인이 먹지 않고 =조인으로 움직이게 되면서 B테이블 특정컬럼의 NOT IN, IN, LIKE조건을 실행하는 걸로 알고 있는데 그게 정확히 맞는건지 아니면 아웃조인 상태로 움직이면서 나머지 컬럼에 걸어놓은 갑들을 체크해서 원하는 값을 도출하는지 궁금합니다.

고수님들의 도움을 요청드립니다.


by 마농 [2011.11.23 11:39:13]
글쎄요..
그때 그때 다르겠죠. 구체적의 쿼리 예시가 있어야 할듯 합니다.

일단 키컬럼 아우터 조인을 우선 하고
나머지 조건은 필터 조건이면서 아우터 조인 싸인(+)을 적용시키지 않았다면.
아우터 조인이 이너조인처럼 동작하는것이 아니구요
아우터 조인을 했지만 필터조건을 체크하면서 제외가 되어 이너조인과 같은 결과가 나오는 거겠죠.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입