: 여러 개의 SQL문을 햡쳐서 하나의 SQL문으로 만들어주는 방법 (주의! 개수가 같아야함)
Union: 중복된 값을 제거하여 알려줌.
Union All: 중복된 값도 모두 보여줌.
SELECT column1, column2, ... FROM tableA
UNION | UNION ALL
SELECT column1, column2, ... FROM tableB;
UNION All 예제:
😉 test1 의 모든 데이터와 test2 모든 데이터를 중복된 값을 포함하여 검색
mysql> select from test1
-> UNION ALL
-> select from test2;
+------+
| no |
+------+
| 1 |
| 2 |
| 3 |
| 5 |
| 6 |
| 3 |
+------+
예제 2:
성별이 여자인 데이터를 검색하는 쿼리와, 소속사가 YG인 데이터를 검색하는 쿼리를 UNION ALL 로 실행.
mysql> select name, sex, agency from celeb where sex='F'
-> UNION ALL
-> select name, sex, agency from celeb where agency='YG';
+--------+------+-------------------+
| name | sex | agency |
+--------+------+-------------------+
| 아이유 | F | EDAM 엔터테인먼트 |
| 이미주 | F | 울림엔터테이먼트 |
| 이수현 | F | YG |
| 강동원 | M | YG |
| 차승원 | M | YG |
| 이수현 | F | YG |
+--------+------+-------------------+
✨ 이수현이 2 번나옴
Union 예제:
😉 test1 의 모든 데이터와 test2의 모든 데이터를 중복된 값을 제거하여 검색
mysql> select from test1
-> UNION
-> select from test2;
+------+
| no |
+------+
| 1 |
| 2 |
| 3 |
| 5 |
| 6 |
+------+
예제 2:
성별이 여자인 데이터를 검색하는 쿼리와, 소속사가 YG인 데이터를 검색하는 쿼리를 UNION ALL 로 실행.
mysql> select name, sex, agency from celeb where sex='F'
-> UNION
-> select name, sex, agency from celeb where agency='YG';
+--------+------+-------------------+
| name | sex | agency |
+--------+------+-------------------+
| 아이유 | F | EDAM 엔터테인먼트 |
| 이미주 | F | 울림엔터테이먼트 |
| 이수현 | F | YG |
| 강동원 | M | YG |
| 차승원 | M | YG |
+--------+------+-------------------+
✨ 이수현이 1 번나옴
예제 3:
성이 이씨인 데이터를 검색하는 쿼리와, 1970년대생을 검색하는 쿼리를 중복을 포함하여 (union all) 합쳐서 실행.
mysql> select name, birthday from celeb where name like '이%'
-> union all
-> select name, birthday from celeb where birthday between 19700101 and 19791231;
+--------+------------+
| name | birthday |
+--------+------------+
| 이미주 | 1994-09-23 |
| 이수현 | 1999-05-04 |
| 유재석 | 1972-08-14 |
| 차승원 | 1970-06-07 |
+--------+------------+