[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
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
122 [Dart] Dart 문법 정리 최고관리자 09-09 51,211
121 [Flutter] absorbpointer-and-ignorepointer 최고관리자 09-08 50,546
120 [PHP] 타입선언 최고관리자 08-22 50,400
119 [PHP] error_level 셋팅과 실제 출력 최고관리자 08-21 50,537
118 [MySql] 타입지정시 괄호안의 숫자 최고관리자 08-18 50,524
117 [MySql] MySQL 최적의 데이터 타입 선택 방법 최고관리자 08-18 50,335
116 [MySql] 인덱스 조회시 주의 사항 최고관리자 08-18 50,225
115 [MySql] NOT NULL과 DEFAULT 를 동시에 쓸 필요가 있는가? 최고관리자 08-18 50,268
114 [Flutter] Row and Column 최고관리자 08-16 50,163
113 [Flutter] Linting 설정으로, 흔하게 실수할 수 있는 것을 build 전 방지하기. 최고관리자 08-16 50,199
112 [PHP] PHP 7.x PHP 8.x에서의 조건문 최고관리자 07-26 50,217
111 [JS] Webpack을 쓰는 이유 최고관리자 07-24 50,210
110 [Vue] Vue Router 최고관리자 07-22 50,167
109 [Vue] Vue.js 기본 원리 최고관리자 07-22 50,573
108 [MySql] 쿼리 결과를 합치는 union vs union all의 차이 최고관리자 07-10 50,212
107 [Vue] 일반적인 프로젝트의 구조에 대해 알아보자. 최고관리자 06-18 50,289
106 [JSP] vue등의 스크립트 분석을 위해 %태그 정도는 알자. 최고관리자 06-18 50,411
105 [MySql] 페이징(paging) 쿼리시 전체개수를 한번에 처리하는 방법 최고관리자 06-14 50,999
104 [MySql] Join vs Sub Query 비교 최고관리자 06-05 50,322
103 [SQL] SQL Join에 대한 이해 최고관리자 06-05 50,299