Engineering Note

[Database] MySQL, SQL JOIN 완벽 정리: INNER JOIN vs LEFT JOIN 본문

Computer Science/Database

[Database] MySQL, SQL JOIN 완벽 정리: INNER JOIN vs LEFT JOIN

Software Engineer Kim 2025. 10. 5. 23:29

INNER JOIN과 LEFT JOIN, 뭐가 다를까?

회원 테이블과 게시글 테이블을 조회할 때, "게시글을 쓴 회원만" 볼 것인가, "게시글 안 쓴 회원도" 볼 것인가의 차이입니다.

 

JOIN의 정식 명칭

INNER JOIN = JOIN (정식 명칭)
LEFT OUTER JOIN = LEFT JOIN (정식 명칭)

 

 

실무에서는 JOIN, LEFT JOIN으로 줄여서 많이 씁니다.

INNER JOIN: 교집합만 조회

언제 사용? 두 테이블에 모두 존재하는 데이터만 필요할 때

예시 상황

회원 3명이 있습니다:

 

SELECT * FROM member;

 

 

이 중 김철수, 이철수만 게시글을 작성했습니다:

 

SELECT * FROM board;

 

 

 

 

INNER JOIN 실행

SELECT *
FROM member m 
JOIN board b 
ON m.member_id = b.member_id;

 

결과: 게시글을 작성한 회원(김철수, 이철수)만 조회됩니다.

박철수는 조회되지 않음 (게시글이 없으므로)

LEFT JOIN: 왼쪽 테이블 전체 조회

언제 사용? 왼쪽 테이블의 모든 데이터를 보되, 오른쪽 테이블과 매칭되는 게 있으면 함께 보고 싶을 때

LEFT JOIN 실행

SELECT * 
FROM member m
LEFT JOIN board b
ON m.member_id = b.member_id;

결과: 모든 회원이 조회되고, 게시글이 없는 회원은 NULL로 표시됩니다.

 

박철수도 조회됨 (게시글 정보는 NULL)

 

핵심 차이 정리

구분 INNER JOIN LEFT JOIN
조회 기준 두 테이블 모두 존재하는 데이터 왼쪽 테이블 전체
예시 결과 게시글 쓴 회원만 모든 회원 (게시글 없어도)
사용 상황 "작성자와 글 함께 보기" "전체 회원 현황 보기"

실무 활용 팁

INNER JOIN 사용:

  • 주문한 고객과 주문 내역
  • 수강 신청한 학생과 강의 정보

LEFT JOIN 사용:

  • 전체 회원과 주문 여부 확인
  • 전체 상품과 판매 이력 분석
Comments