[MySql] 쿼리 결과를 합치는 union vs union all의 차이

쿼리문 합치는 방법 (UNION, UNION ALL)


두 개 이상의 SQL 쿼리문을 합치는 방법에 대해 알아보자.


 부득이하게 여러개에 쿼리문을 사용하여 하나에 데이터로 출력해야되는 경우가 존재한다. 이럴 때 사용하는 방법이 바로 UNION 연산자이다.


 예제를 통해 빠르게 이해해보자. 아래는 예제 테이블 2개이다.


 예제 테이블 1

ID

NAME

1

김서방

2

조서방


 예제 테이블 2

ID

NAME

2

조서방

3

박서방


 예제 테이블 각각에 데이터가 들어있다. 예제 테이블들에 데이터를 추출해보자.


 SELECT ID, NAME FROM TABLE1 ;

 SELECT ID, NAME FROM TABLE2 ;


 그러면 위에 예제 테이블 데이터대로 ID와 NAME값을 얻을 수 있다. 그럼 하나의 쿼리로 만들기 위해 UNION ALL을 사용해보자.


 SELECT ID, NAME FROM TABLE1 ;

 UNION ALL

 SELECT ID, NAME FROM TABLE2 ;


 UNION ALL 연산자 결과

ID

NAME

1

김서방

2

조서방

2

조서방

3

박서방


 그러면 위와 같이 출력되는 것을 확인할 수 있다. UNION ALL 연산자는 각각에 쿼리에서 나온 데이터를 하나로 합쳐주는 역할을 하고 있으며, 중복되는 값도 그대로 출력이 된다. 그럼 다른 연산자인 UNION을 사용해보자.


 SELECT ID, NAME FROM TABLE1 ;

 UNION

 SELECT ID, NAME FROM TABLE2 ;


 UNION 연산자 결과

ID

NAME

1

김서방

2

조서방

3

박서방


 그러면 UNION ALL 연산자와 확연히 차이나는 부분이 있을 것이다. 바로 중복되는 부분은 하나에 로우로만 출력이 되는 것이다.


 UNION 연산자와 UNION ALL 연산자는 두 개이상에 SQL 쿼리를 하나로 만들어주지만 차이나는 부분은 중복여부이다. 또한 UNION 연산자를 사용할 시에는 각 쿼리에 컬럼 갯수 및 명칭을 맞춰줘야 되며 그렇지 않으면 오류가 발생하는 것을 볼 수 있다.

출처: https://sesok808.tistory.com/510 [살아가는 그 이유:티스토리]

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
102 [Git] git switch branch명 결과를 ftp로 업로드 하려면 최고관리자 06-02 10,267
101 [Git] git switch branch명 에서 바뀐파일(modifed File) 확인 최고관리자 06-02 4,578
100 [MySql] 테이블 내용 복사하기(인덱스 키 추가하기) 최고관리자 05-24 2,595
99 [Android] 안드로이드에서 PDF 미리보기가 안되는 이유 최고관리자 04-28 3,366
98 [PHPOffice] PHP 8.0 에서 PHPOffice 엑셀저장이 안되는 경우 최고관리자 04-26 1,651
97 [Javascript] window.location Value 최고관리자 04-18 1,589
96 [Git] git clone 과 git pull 의 차이점 최고관리자 04-14 1,307
95 [Git] 특정폴더만 pull 하기 최고관리자 04-14 1,317
94 [Upload] Nginx + PHP7.4 Upload 설정 최고관리자 04-10 1,199
93 [https] Certbot을 활용한 HTTPS 적용과 리다이렉트(ubuntu-nginx) 최고관리자 04-02 9,462
92 [Linux] Bash 명령어 활용 최고관리자 03-26 1,581
91 [MySQL] 중복 데이타 삭제하기 최고관리자 03-16 2,347
90 [Git] 중앙 원격 저장소, 자신의 원격 저장소, 로컬 저장소의 개념 최고관리자 03-01 1,414
89 [GitHub] Git 브랜치의 종류 및 사용법 (5가지) 최고관리자 03-01 1,364
88 Git 한글 메뉴얼 최고관리자 02-25 1,281
87 ERROR 1698 : Access denied for user 'root'@'localhost' 문제 해결 최고관리자 02-24 1,316
86 NGINX + PHP71 + PHP-FPM 설치하기 최고관리자 02-23 1,198
85 (function() { })() 의 의미는? 최고관리자 02-16 1,302
84 [참고] 부트스트랩(bootstrap) 사이트 개발 최고관리자 10-09 1,626
83 [JS] 디바운스(Debounce)와 스로틀(Throttle ) 그리고 차이점 최고관리자 09-14 1,827