joinnullrelational-model

INNER JOIN과 OUTER JOIN의 차이를 설명해 주세요

예상 시간
5
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

LEFT JOIN 결과에서 매칭이 없으면 어떤 값이 나오나요?

부가 설명

회원과 주문을 예로 들면 차이가 바로 보입니다. 주문한 회원만 보고 싶다면 회원과 주문이 모두 존재하는 행만 남기는 INNER JOIN이 자연스럽습니다. 반대로 주문이 없는 회원까지 포함해 회원 목록을 보고 싶다면 LEFT JOIN이 필요합니다.

조인 문제에서 자주 헷갈리는 부분은 WHERE 조건의 위치입니다. LEFT JOIN을 해 놓고 오른쪽 테이블 컬럼에 대한 조건을 WHERE에 두면 NULL 행이 걸러져 사실상 INNER JOIN처럼 동작할 수 있습니다. 그래서 선택 관계를 유지해야 하는 쿼리에서는 조건을 ON에 둘지 WHERE에 둘지 의도를 분명히 해야 합니다.

한 줄 정리

INNER JOIN은 매칭된 행만, OUTER JOIN은 매칭되지 않은 기준 행도 남깁니다.