[SQLD] 2장 SQL 기본 및 활용 - INNER & OUTER JOIN
2025. 8. 20. 17:43

조인의 이해

데이터베이스에서 조인은 두 개 이상의 테이블을 연결해서 원하는 데이터를 가져오는 방법이다.

조인을 사용하면 한 테이블에 없는 정보도 다른 테이블과 연결해서 확인할 수 있다.

대표적으로 INNER JOIN, OUTER JOIN(LEFT, RIGHT, FULL) 이 있다.


INNER JOIN

개념

INNER JOIN이란, 두 테이블에서 조건이 일치하는 행만 가져오는 것이다.

  1. 조건을 만족하는 행만 출력된다.
  2. 일치하지 않는 데이터는 결과에 포함되지 않는다.

예시

[학생 테이블]

학번   이름    지도교수ID
1     철수    101
2     영희    NULL
3     민수    103

[교수 테이블]

ID   교수명
101  김교수
102  박교수
SELECT s.이름 AS 학생, p.교수명
FROM 학생 s
INNER JOIN 교수 p
ON s.지도교수ID = p.ID;

결과

학생   | 교수명
------+-------
철수   | 김교수

조건에 맞는 경우만 출력되므로, 영희(지도교수 없음)와 민수(103번 교수 없음)는 결과에 나오지 않는다.


LEFT OUTER JOIN

개념

LEFT OUTER JOIN이란, 왼쪽 테이블(기준 테이블)의 모든 데이터를 가져오고, 일치하는 값이 없으면 NULL을 넣는 것이다.

  1. 왼쪽 테이블(학생)은 무조건 다 나온다.
  2. 일치하는 값이 없을 때만 NULL로 채운다.

예시

SELECT s.이름 AS 학생, p.교수명
FROM 학생 s
LEFT JOIN 교수 p
ON s.지도교수ID = p.ID;

결과

학생   | 교수명
------+-------
철수   | 김교수
영희   | NULL
민수   | NULL

RIGHT OUTER JOIN

개념

RIGHT OUTER JOIN이란, 오른쪽 테이블(교수)을 기준으로 모두 가져오고, 일치하지 않으면 NULL을 넣는 것이다.

  1. 오른쪽 테이블(교수)은 무조건 다 나온다.
  2. 일치하는 학생이 없으면 NULL로 채운다.

예시

SELECT s.이름 AS 학생, p.교수명
FROM 학생 s
RIGHT JOIN 교수 p
ON s.지도교수ID = p.ID;

결과

학생   | 교수명
------+-------
철수   | 김교수
NULL   | 박교수

FULL OUTER JOIN

개념

FULL OUTER JOIN은 양쪽 테이블의 모든 데이터를 가져오고, 매칭되지 않는 부분은 NULL로 채운다.

간단히 말하면, LEFT + RIGHT OUTER JOIN을 합친 것이다.


핵심 정리

  1. INNER JOIN
    • 일치하는 데이터만 출력
  2. LEFT OUTER JOIN
    • 왼쪽 테이블 기준, 없으면 NULL
  3. RIGHT OUTER JOIN
    • 오른쪽 테이블 기준, 없으면 NULL
  4. FULL OUTER JOIN
    • 양쪽 테이블 기준, 없으면 NULL

 


 

SQLD를 준비하면서 OUTER JOIN이라는 개념을 처음 접했다.

학과 수업 수준에서는 기본적인 natural inner join만 배웠기 때문에 익숙하지 않았는데,

이번에 정확하게 개념을 잡고 가고자 포스팅하게 되었다.

 

4일만의 합격을 향해서.. 파이팅!!