데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
select columnname
from table1 T1
left outer join table2 T2 on T1.column1 = T2.column1
and T2.column2 = '2'
select columnname
from table1 T1
left outer join table2 T2 on T1.column1 = T2.column1
where T2.column2 = '2'
이 둘다 같은 쿼리인가요?
전 보통 아래처럼 사용하는데 성능이나 어느것이 효율적인지 궁금해서 여쭤봅니다
둘은 다른 쿼리입니다.
위 상단의 쿼리는
left outer join table2 T2 on T1.column1 = T2.column1
T2에 대한 조건절이 OUTER JOIN 의 ON 절에 걸려있으므로
LEFT OUTER JOIN 처리되지만
하단의 쿼리는
T2 (OUTER JOIN 되는 테이블)
의 조건을 WHERE 조건절에 사용을 한 형태라
INNER JOIN 으로 처리가 됩니다.