“JOIN은 옆으로, UNION은 아래로! – SELECT 결과 합치기 완전정복”

 

🧩 UNION이란?

UNION은 두 개 이상의 SELECT 결과를 수직 방향(아래로) 붙이는 명령어입니다.

  • 반면 JOIN은 가로 방향(옆으로) 데이터를 연결하는 것이죠.

🔨 예를 들어볼게요:

  • JOIN은 두 테이블을 기준 열을 통해 열(Column) 을 늘리는 방식이고,
  • UNION은 열 수와 형식이 같은 두 결과를 행(Row) 으로 쌓는 방식입니다.

✅ 기본 문법

SELECT 열1, 열2, ...
FROM 테이블A

UNION

SELECT 열1, 열2, ...
FROM 테이블B;

 

⚠️ 사용 시 주의점

 

🧪 예제

🎯 테이블 1: developers

 

🎯 테이블 2: designers

 

1️⃣ UNION

SELECT name, role FROM developers
UNION
SELECT name, role FROM designers;

 

 

✔️ 중복이 없기 때문에 전부 표시됨

 

 

2️⃣ UNION ALL

SELECT name, role FROM developers
UNION ALL
SELECT name, role FROM designers;

 

중복이 있어도 모두 출력

 

🧠 언제 사용하면 좋을까?

  • 같은 구조(열 개수와 타입)의 테이블을 하나로 합칠 때
    예) 개발자와 디자이너 명단을 하나로 보고 싶을 때
  • 한 번에 여러 조건의 SELECT 결과를 보고 싶을 때
    예) “서울” 사는 사람, “부산” 사는 사람 따로 뽑아 UNION

💡 실력자를 위한 꿀팁

  • UNION은 중복 제거 때문에 속도가 느릴 수 있음 → 성능 중요하면 UNION ALL + 애플리케이션에서 필터링
  • ORDER BY는 전체 쿼리 마지막에만 가능
SELECT name, role FROM developers
UNION
SELECT name, role FROM designers
ORDER BY name; -- 전체 결과 기준으로 정렬
  • LIMIT도 ORDER BY 뒤에 함께 사용 가능 

 

+ Recent posts