[MySQL/MariaDB] Union all 사용법

💡 핵심 요약 (TL;DR)

Union all 사용법의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. 하지만 동일한 컬럼을 가지고 있지 않은데 검색결과를 함께보고싶다면 고려해봐야할 것이 바로 union all을 사용해보자.

동일한 컬럼을 가지고 있는 두 테이블은 JOIN과 ON절을 이용해서 합칠 수 있다.
하지만 동일한 컬럼을 가지고 있지 않은데 검색결과를 함께보고싶다면 고려해봐야할 것이 바로 union all을 사용해보자.

  • JOIN: 수직결합
  • UNION: 수평결합
    • UNION: 중복데이터 제거
    • UNION ALL: 중복여부와 상관없이 모든 데이터 출력

만약 과일가게테이블과 편의점테이블이 아래처럼 있다고 생각해보자.

  • 과일가게테이블
1
2
3
4
5
6
7
8
과일가게테이블
+--------+--------+
| 품 명 | 가 격 |
+--------+--------+
| 바나나 | 1500 |
| 딸기 | 2000 |
| 사과 | 2000 |
+--------+--------+
  • 편의점테이블
1
2
3
4
5
6
7
8
편의점테이블
+--------+--------+
| 품 명 | 가 격 |
+--------+--------+
| 바나나 | 1500 |
| 사과 | 2500 |
| 하리보 | 2000 |
+--------+--------+

UNION

중복데이터 제거한 결과가 출력된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT * FROM 과일가게테이블 
UNION
SELECT * FROM 편의점테이블;

// 결과
+--------+--------+
| 품 명 | 가 격 |
+--------+--------+
| 바나나 | 1500 |
| 딸기 | 2000 |
| 사과 | 2000 |
| 바나나 | 1500 |
| 사과 | 2500 |
| 하리보 | 2000 |
+--------+--------+

UNION ALL

중복여부와 상관없이 모든 데이터 출력된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT * FROM 과일가게테이블 
UNION ALL
SELECT * FROM 편의점테이블;

// 결과
+--------+--------+
| 품 명 | 가 격 |
+--------+--------+
| 바나나 | 1500 |
| 딸기 | 2000 |
| 사과 | 2000 |
| 사과 | 2500 |
| 하리보 | 2000 |
+--------+--------+

#MariaDB

Author

sowon-dev

Posted on

2021-10-18

Updated on

2026-10-13

Licensed under

CC BY 4.0

댓글