DatabaseSep 24, 2025

Types of JOIN

Types of JOIN

조인의 종류

조인(Join)이란 두 개 이상의 테이블을 연결하여 하나의 결과 집합으로 만드는 SQL 연산이다. MySQL에서는 JOIN 키워드로, MongoDB에서는 $lookup 연산자로 조인을 수행할 수 있다.


MongoDB에서는 되도록이면 조인을 사용하지 않고, 데이터 중복을 허용하는 방식으로 스키마를 설계하는 것을 권장한다. MongoDB는 조인 연산이 관계형 데이터베이스에 비해 성능이 떨어지기 때문이다. 따라서, 여러 테이블을 조인하는 복잡한 쿼리가 필요한 경우에는 MySQL과 같은 관계형 데이터베이스를 사용하는 것이 좋다.


아래는 조인의 대표적인 4가지 종류이다.

  • 내부 조인(Inner Join): 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 경우에만 결과 집합에 포함한다.
  • 왼쪽 외부 조인(Left Outer Join): 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 결과 집합에 포함한다. 오른쪽 테이블에 일치하는 행이 없는 경우에는 NULL로 채운다.
  • 오른쪽 외부 조인(Right Outer Join): 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 결과 집합에 포함한다. 왼쪽 테이블에 일치하는 행이 없는 경우에는 NULL로 채운다.
  • 전체 외부 조인(Full Outer Join): 왼쪽 테이블과 오른쪽 테이블의 모든 행을 결과 집합에 포함한다. 일치하는 행이 없는 경우에는 NULL로 채운다.

그림으로 표현하면 다음과 같다.

Types of JOIN



목차



내부 조인

내부 조인(Inner Join)은 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 경우에만 결과 집합에 포함한다.

sql
SELECT * FROM TABLE_A AS A
INNER JOIN TABLE_B AS B
ON A.key = B.key;


왼쪽 조인

왼쪽 조인(Left Outer Join)은 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 결과 집합에 포함한다. 오른쪽 테이블에 일치하는 행이 없는 경우에는 NULL로 채운다.

sql
SELECT * FROM TABLE_A AS A
LEFT JOIN TABLE_B AS B
ON A.key = B.key;


오른쪽 조인

오른쪽 조인(Right Outer Join)은 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 결과 집합에 포함한다. 왼쪽 테이블에 일치하는 행이 없는 경우에는 NULL로 채운다.

sql
SELECT * FROM TABLE_A AS A
RIGHT JOIN TABLE_B AS B
ON A.key = B.key;


합집합 조인

합집합 조인(Full Outer Join)은 왼쪽 테이블과 오른쪽 테이블의 모든 행을 결과 집합에 포함한다. 일치하는 행이 없는 경우에는 NULL로 채운다.

sql
SELECT * FROM TABLE_A AS A
FULL OUTER JOIN TABLE_B AS B
ON A.key = B.key;

Share this post

N