SQL 조인: 이너 조인과 아우터 조인의 이해와 차이점

신수정·2024년 4월 27일

SQL에서 데이터를 효과적으로 쿼리하고 조합하는 방법을 배우는 것은 데이터 관리와 분석에서 매우 중요합니다. 특히, '조인(Join)'은 여러 테이블의 데이터를 결합하여 보다 유용한 정보를 추출할 수 있게 해주는 강력한 도구입니다. 이 글에서는 두 가지 기본적인 조인 유형인 '이너 조인(Inner Join)'과 '아우터 조인(Outer Join)'에 대해 설명하고 그 차이점을 살펴보겠습니다.

이너 조인(Inner Join)

이너 조인은 가장 일반적으로 사용되는 조인 유형입니다. 이 조인은 두 테이블 간의 교집합만을 결과로 반환합니다. 즉, 두 테이블 모두에서 일치하는 행만 선택됩니다. 이너 조인은 두 테이블을 연결하는 매칭 컬럼에서 동일한 값을 가진 행들을 결합하여 새로운 결과 테이블을 생성합니다.

사용 예:

SELECT a.*, b.*
FROM 테이블A a
INNER JOIN 테이블B b ON a.id = b.a_id;

위 SQL 쿼리는 테이블 A와 테이블 B를 id 컬럼과 a_id 컬럼을 기준으로 이너 조인합니다. 두 테이블에서 일치하는 id 값이 있는 행만 결과로 나타납니다.

아우터 조인(Outer Join)

아우터 조인은 특정 테이블의 모든 행을 포함하면서 다른 테이블과의 일치하는 행을 결합합니다. 일치하는 행이 없는 경우, 결과 테이블에서 해당 행의 나머지 컬럼은 NULL로 채워집니다. 아우터 조인은 좌측 외부 조인(Left Outer Join), 우측 외부 조인(Right Outer Join), 전체 외부 조인(Full Outer Join)의 세 가지 유형이 있습니다.

  • 좌측 외부 조인(Left Outer Join): 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 반환합니다.
  • 우측 외부 조인(Right Outer Join): 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 일치하는 행을 반환합니다.
  • 전체 외부 조인(Full Outer Join): 양쪽 테이블의 모든 행을 반환하되, 한쪽 테이블에만 있는 데이터는 다른 쪽은 NULL로 표시됩니다.

사용 예:

SELECT a.*, b.*
FROM 테이블A a
LEFT OUTER JOIN 테이블B b ON a.id = b.a_id;

이 쿼리는 테이블 A의 모든 행과 테이블 B에서 일치하는 행을 결합합니다. 테이블 B에서 일치하는 a_id가 없는 경우, 해당 행은 결과에 포함되되, 테이블 B의 컬럼 값은 NULL로 표시됩니다.

이너 조인과 아우터 조인의 차이점

이너 조인과 아우터 조인의 주요 차이점은 반환되는 행의 범위입니다. 이너 조인은 오직 두 테이블이 서로 일치하는 행만 반환하는 반면, 아우터 조인은 일치하는 행 뿐만 아니라, 지정된 테이블의 다

른 행들까지 포함하여 반환합니다. 따라서 아우터 조인은 더 포괄적인 데이터 세트를 제공하며, 데이터의 누락 없이 전체적인 상황을 파악하고자 할 때 유용합니다.

profile
안녕하세요:)

0개의 댓글