기록과 정리

SQL-UNION, UNION ALL 본문

IT/DB

SQL-UNION, UNION ALL

zepetto 2021. 9. 1. 21:47

이 글은 '[백문이불여일타] 데이터 분석을 위한 중급 SQL' 강의를 참고하였습니다.

https://www.inflearn.com/course/%EB%B0%B1%EB%AC%B8%EC%9D%B4%EB%B6%88%EC%97%AC%EC%9D%BC%ED%83%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B8%B0%EC%B4%88-sql/lecture/29718?tab=note 

 

[백문이불여일타] 데이터 분석을 위한 기초 SQL - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

소개

Join은 옆으로 데이터를 붙이지만 Union의 경우, 아래로 데이터를 붙이는 방법이다. 

 

UNION

User_new

로그인 아이디 연락처 주소
A 010-****-5420 강서구 방화동
B 010-****-6405 금천구 시흥동

User_goin

로그인 아이디 연락처 주소
B 010-****-6405 금천구 시흥동
D 010-****-5678 Paris

해당 두테이블이 있다고 할때, 아래로 이어줄 수 있다.

로그인 아이디 연락처 주소
A 010-****-5420 강서구 방화동
B 010-****-6405 금천구 시흥동
D 010-****-5678 Paris

중복 데이터가 있을 경우, 중복을 없애서 합쳐진 결과를 반환한다.

 

UNION ALL

반면 UNION ALL의 경우, 중복 값까지 전부 표현해준다.

로그인 아이디 연락처 주소
A 010-****-5420 강서구 방화동
B 010-****-6405 금천구 시흥동
B 010-****-6405 금천구 시흥동
D 010-****-5678 Paris

UNION을 합집합처럼 생각할 수도 있다. 그럼 차집합같이 뺄 수 있는 방법이 없을까? EXCEPT 또는 MINUS 등 있지만 MySQL에서는 지원하지 않는 함수이기 때문에 각 DB에 따라 적절히 찾아 사용하면 될 듯 하다.