개발 문서/SQL

INNER JOIN vs OUTER JOIN: 차이점과 사용 시나리오

copg 2023. 11. 12. 19:55
728x90
반응형

INNER JOINOUTER 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을 선택하고 결과를 확인하여 데이터의 일치 여부에 따라 어떻게 다르게 처리되는지를 이해하는 것이 중요합니다.