[SQL] MySQL에서 FULL OUTER JOIN 하기

Unit·2025년 10월 26일

SQL

목록 보기
42/59

FULL OUTER JOIN은 다양한 DBMS에서 갖추고 있는 기능이지만, MySQL에서는 지원되지 않습니다.
즉, 한 번의 쿼리로 양쪽 테이블의 모든 행을 포함하는 결과를 얻을 수 없어요.
하지만 간단히 LEFT JOIN과 RIGHT JOIN을 조합하면
동일한 결과를 만들 수 있습니다.


📄 예시 데이터

  • A 테이블
idname
1Alice
2Bob
  • B 테이블
idscore
280
390

🎯 목표

두 테이블의 모든 데이터를 포함한 결과(LEFT + RIGHT 조합) 출력하기


🖥️ SQL 예시

SELECT A.id
	 , A.name
     , B.score
FROM A
LEFT JOIN B
	   ON A.id = B.id

UNION

SELECT A.id
	 , A.name
     , B.score
FROM A
RIGHT JOIN B
	    ON A.id = B.id;

👁️ 결과

idnamescore
1AliceNULL
2Bob80
3NULL90

정리

✔️ FULL OUTER JOIN이 지원되지 않는 MySQL에서는 LEFT JOIN + RIGHT JOIN + UNION 조합이 대체 방식입니다.
✔️ UNION은 중복을 제거하고 UNION ALL은 중복을 포함하므로, UNION을 사용하여야 합니다.

profile
협업, 유지보수, 최적화를 고려한 데이터 실무 팁을 정리합니다.

0개의 댓글