두 개 이상의 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 연산자를 사용할 시에는 각 쿼리에 컬럼 갯수 및 명칭을 맞춰줘야 되며 그렇지 않으면 오류가 발생하는 것을 볼 수 있다.
관련글 더 보기
2018/08/23 - [SQL] 집계함수 사용방법 (SUM, AVG, COUNT, MAX, MIN 함수)
2018/08/23 - [SQL] 중복제거 하는 방법 (DISTINCT 함수)
2018/08/22 - [SQL] 문자열 추출하기 (SUBSTR, SUBSTRING 함수)
↓ 공감 을 눌러주시면 블로거에게 큰 힘이 됩니다 !
'공부 이야기' 카테고리의 다른 글
[엑셀] 빠른 실행 도구 모음에 필요한 도구 추가방법 ! (0) | 2018.08.25 |
---|---|
[MSSQL] 날짜 변환 하기 (GETDATE, CONVERT) (0) | 2018.08.23 |
[SQL] 집계함수 사용방법 (SUM, AVG, COUNT, MAX, MIN 함수) (0) | 2018.08.23 |
[SQL] 중복제거 하는 방법 (DISTINCT 함수) (0) | 2018.08.23 |
[SQL] 문자열 추출하기 (SUBSTR, SUBSTRING 함수) (0) | 2018.08.22 |