JOIN (INNER, OUTER) 간결한 예제와 함께

그냥 준현·2024년 6월 24일
0

Computer Science

목록 보기
9/16

SQL에서 데이터베이스 테이블 간의 관계를 정의하고 결합하는 데 가장 일반적인 두 가지 유형의 조인이 있습니다.
바로 INNER JOINOUTER JOIN입니다.

MySQL 환경에서 아래의 두 테이블을 가지고 JOIN 예제를 살펴보겠습니다.

1. INNER JOIN

INNER JOIN조인 조건에 일치하는 행만 반환하기 때문에, 두 테이블 모두에서 조건을 만족하는 데이터가 있어야 합니다.
따라서 INNER JOIN은 두 테이블 간의 교집합을 구할 때 사용됩니다.

SELECT * FROM a_table INNER JOIN b_table ON a_table.color = b_table.color;

위 예제에서 ON a_table.color = b_table.color 조건이 일치하는 row만 합쳐진 것을 확인할 수 있습니다.

2. OUTER JOIN

OUTER JOIN에는 세 가지 종류가 있습니다.

  1. LEFT JOIN
  2. RIGHT JOIN
  3. FULL JOIN

이 조인들은 INNER JOIN과 달리 조인 조건에 일치하지 않는 데이터도 반환합니다.

2.1 LEFT JOIN

LEFT JOIN왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 반환합니다.
일치하는 행이 없는 경우, 오른쪽 테이블의 열은 NULL로 채워집니다.

SELECT * FROM a_table LEFT JOIN b_table ON a_table.color = b_table.color;

위 예제에서 ON a_table.color = b_table.color 조건이 일치하는 b_table의 row만 표시되고 나머지는 NULL이 채워진 것을 확인할 수 있습니다.

2.2 RIGHT JOIN

RIGHT JOINLEFT JOIN과 반대로, 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 일치하는 행을 반환합니다.
일치하는 행이 없는 경우, 왼쪽 테이블의 열은 NULL로 채워집니다.

SELECT * FROM a_table RIGHT JOIN b_table ON a_table.color = b_table.color;

위 예제에서 ON a_table.color = b_table.color 조건이 일치하는 a_table의 row만 표시되고 나머지는 NULL이 채워진 것을 확인할 수 있습니다.

2.3 FULL JOIN

FULL JOIN두 테이블의 모든 행을 반환하며, 일치하지 않는 데이터는 NULL로 표시됩니다.
이는 두 테이블 간의 합집합을 구하는 방식입니다.

MySQL에서는 FULL JOIN을 지원하지 않으므로 개념적인 부분만 그림으로 살펴보겠습니다.

a_table과 b_table의 모든 row가 표시되지만, 조건이 일치하지 않는 부분은 모두 NULL이 채워집니다.

profile
잘해야 재밌어

0개의 댓글

관련 채용 정보