UNION 은 서로 다른 테이블에서 같은 유형의 결과를 얻고 싶을 때 사용한다.
물론 같은 테이블을 UNION 으로 해서 결과를 얻어낼 수도 있다.
테이블 A 와 테이블 B 가 있는데, 테이블 A의 칼럼명과 테이블 B의 칼럼명이 서로 달라도 칼럼의 데이터형식이 호환되면 UNION 으로 결과를 얻어낼 수가 있다.
물론, 테이블 A 와 테이블 B의 칼럼수가 서로 달라도 상관없다.
하지만 화면에 출력될 칼럼 수는 동일하게 개수를 맞춰야 한다.
SELECT column_1, column_2 FROM 테이블 A WHERE 조건
UNION
SELECT column_1, column_2 FROM 테이블 B WHERE 조건;
SELECT column_1, column_2 FROM 테이블 A WHERE 조건
UNION ALL
SELECT column_1, column_2 FROM 테이블 B WHERE 조건;
UNION 과 UNION ALL 의 차이점은 조회결과에 중복을 포함하지 않느냐, 포함하느냐 이다.
중복을 포함해서 결과를 가져오라고 하면 속도는 당연히 더 빠르다.
하지만, 두 개의 테이블에서 E-Mail 을 추출해서 메일을 보낸다고 하면 중복이 발생하면 안되므로 UNION 을 사용해야 한다. UINO 으로 결합하면 중복을 제거한다.
UNION 으로 결합해서 나온 결과를 정렬을 한다면 어떻게 해야 할까?
SELECT column_1, column_2 FROM 테이블 A WHERE 조건
UNION
SELECT column_1, column_2 FROM 테이블 B WHERE 조건
ORDER BY column_1, column_2;
'SQL' 카테고리의 다른 글
[MySQL] 테이블 구조 보기 (0) | 2015.08.10 |
---|---|
[MySQL] 테이블 칼럼 추가, 삭제, 변경 (0) | 2015.08.01 |
[MySQL] 최근 게시물 10개 출력 (0) | 2015.07.29 |
[MySQL] InStr 함수 (0) | 2015.07.26 |
[MySQL] 중복된 갯수가 n 개 이상 및 데이터 찾기 (5) | 2015.07.18 |