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

웹개발

번호 제목 글쓴이 날짜 조회수
42 [MySQL] user Table 권한설명 최고관리자 10-13 2,475
41 [NginX] Codeigniter를 위한 server config 최고관리자 09-09 3,120
40 [Nginx] 역할 최고관리자 09-09 3,048
39 [MySQL] Replace를 이용하여 데이타 내용 치환하기 최고관리자 09-08 2,041
38 [리눅스] Mysql Database 이름을 www.telepasi.com처럼 하면 안됨 최고관리자 09-08 1,998
37 [리눅스] CentOS vsftpd 설치 최고관리자 09-08 2,066
36 [리눅스] 사용자 목록 확인 (Linux User List) 최고관리자 09-08 14,253
35 [NginX] 리버스 프록시(Reverse Proxy)란 최고관리자 09-08 5,431
34 [리눅스] go lang - REST API를 위한 Gin 설치 최고관리자 09-07 2,083
33 [리눅스] go 환경설정 최고관리자 09-07 2,069
32 [리눅스] CentOS7 에서 go Lang 설치하기 최고관리자 09-07 2,040
31 [리눅스] Mysql 원격접속 허용하기 최고관리자 09-07 2,106
30 [서버설치] How to Install PHP 7, NGINX, MySQL on CentOS/RHEL 7.6 최고관리자 09-06 2,110
29 [서버 설치] mysql_secure_installation 최고관리자 09-06 2,025
28 [서버 설치] CentOS7 방화벽 설치 최고관리자 09-06 1,963
27 [DNS] abc.com www.abc.com 레코드 설정 최고관리자 09-05 1,995
26 [리눅스] httpd conf 위치 확인 및 conf 문법검사 명령 최고관리자 09-05 2,720
25 [리눅스] Apache 권한에 대한 참고 사항 최고관리자 09-04 4,714
24 [리눅스] CentOS Apache 주요 디렉토리 최고관리자 09-04 2,175
23 [리눅스] CentOS 6 vs CentOS 7 명령어 대응 최고관리자 09-04 2,302