개발 문서/SQL
INNER JOIN vs OUTER JOIN: 차이점과 사용 시나리오
copg
2023. 11. 12. 19:55
728x90
반응형
INNER JOIN
과 OUTER JOIN
은 SQL에서 두 개 이상의 테이블을 결합하는 데 사용되는 연산자입니다. 이 두 연산자는 서로 다른 방식으로 결과를 반환하며, 그 차이점은 결합 조건에 맞는 행이 없을 때의 처리 방식에 있습니다.
INNER JOIN:
INNER JOIN
은 두 테이블 간에 일치하는 행만 반환합니다. 즉, 결합 조건에 맞는 행이 있는 경우에만 결과에 포함됩니다.
SELECT *
FROM table1
INNER JOIN table2 ON table1.column = table2.column;
OUTER JOIN:
OUTER JOIN
은 일치하지 않는 행도 결과에 포함시킵니다. OUTER JOIN
에는 LEFT OUTER JOIN
, RIGHT OUTER JOIN
, FULL OUTER JOIN
등이 있습니다.
LEFT OUTER JOIN (또는 LEFT JOIN):
- 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우 오른쪽 테이블의 열은 NULL 값으로 채워집니다.
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
RIGHT OUTER JOIN (또는 RIGHT JOIN):
- 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우 왼쪽 테이블의 열은 NULL 값으로 채워집니다.
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
FULL OUTER JOIN (또는 FULL JOIN):
- 양쪽 테이블 중 어느 한쪽에라도 일치하는 행을 반환합니다. 일치하지 않는 경우 NULL 값으로 채워집니다.
SELECT * FROM table1 FULL JOIN table2 ON table1.column = table2.column;
사용 시나리오:
INNER JOIN:
- 두 테이블 간에 일치하는 행만 필요한 경우 사용합니다.
LEFT (RIGHT) OUTER JOIN:
- 왼쪽 (또는 오른쪽) 테이블의 모든 행과 함께 오른쪽 (또는 왼쪽) 테이블에서 일치하는 행이 필요한 경우 사용합니다.
FULL OUTER JOIN:
- 양쪽 테이블 중 어느 한쪽에라도 일치하는 행이 필요한 경우 사용합니다.
예제를 통해 적절한 JOIN을 선택하고 결과를 확인하여 데이터의 일치 여부에 따라 어떻게 다르게 처리되는지를 이해하는 것이 중요합니다.