select column1, column2, ... from tableA
UNION | UNION ALL
SELECT column1, column2, ... FROM tableB;
🤔각 테이블에서 불러오는 칼럼이 다른 경우 어떻게 될까
mysql> select name, job_title from celeb where job_title LIKE '%singer%'
-> UNION
-> select age, birthday from celeb where birthday LIKE '198%';
+----------+----------------+
| name | job_title |
+----------+----------------+
| IU | singer, talent |
| MIJU | singer |
| SOOHYEON | singer |
| 41 | 1981-01-18 |
+----------+----------------+
-- 처음 지정한 칼럼명으로 반환되어 name과 job_title에 맞지 않은 age와 birthday 칼럼값이 합쳐짐
(예제) 성이 '이'씨인 데이터를 검색하는 쿼리와 1970년대 생을 검색하는 쿼리를 중복 포함 합쳐서 실행해보자
mysql> SELECT NAME, BIRTHDAY FROM CELEB
-> WHERE NAME LIKE '이%'
-> UNION ALL
-> SELECT NAME, BIRTHDAY FROM CELEB
-> WHERE BIRTHDAY BETWEEN '1970-01-01' AND '1979-12-31';
-- 1970년대생 조건을 만족할 수 있는 BETWEEN 구문이 길다고 판단이 들어 LIKE도 시험해봄
-- ↓ LIKE 사용 VER
mysql> SELECT NAME, BIRTHDAY FROM CELEB
-> WHERE NAME LIKE '이%'
-> UNION ALL
-> SELECT NAME, BIRTHDAY FROM CELEB
-> WHERE BIRTHDAY LIKE '197%';
-- 둘 다 같은 결과를 반환함을 알 수 있다
+--------+------------+
| NAME | BIRTHDAY |
+--------+------------+
| 이미주 | 1994-09-23 |
| 이수현 | 1999-05-04 |
| 유재석 | 1972-08-14 |
| 차승원 | 1970-06-07 |
+--------+------------+