Database
[MySQL] UNION, UNION ALL 연산자 사용법
로넌
2022. 9. 19. 09:47
동일한 컬럼을 가지고 있는 두 테이블은 JOIN절을 사용할 수 있다. 만약, 동일한 컬럼을 가지고 있지 않지만 두 테이블을 합쳐야 하는 경우가 있다면? UNION, UNION ALL 연산자를 사용하자!
예제 테이블 1) 과일 테이블
ID | NAME |
1 | 딸기 |
2 | 키위 |
예제 테이블 2) 과일2 테이블
ID | NAME |
3 | 딸기 |
4 | 참외 |
각각의 데이터를 SELECT문을 사용하여 추출할 수 있다.
SELECT ID, NAME FROM 과일 테이블;
SELECT ID, NAME FROM 과일2 테이블;
UNION ALL
하나의 쿼리를 만들기 위해 UNION ALL을 사용해보자.
SELECT ID, NAME FROM 과일 테이블
UNION ALL
SELECT ID, NAME FROM 과일2 테이블;
ID | NAME |
1 | 딸기 |
2 | 키위 |
3 | 딸기 |
4 | 참외 |
UNION ALL 의 경우, 중복되는 값도 같이 출력되는 걸 확인할 수 있다.
중복되는 값을 제외한 데이터만을 얻고 싶으면 UNION을 사용하면 된다.
UNION
SELECT ID, NAME FROM 과일 테이블
UNION
SELECT ID, NAME FROM 과일2 테이블;
ID | NAME |
1 | 딸기 |
2 | 키위 |
4 | 참외 |
UNION과 UNION ALL 의 차이는 중복데이터 조회 여부에 있다.
주의할 점은 UNION을 사용할 경우, 쿼리에 컬럼 개수와 명칭을 맞춰줘야 한다.