SQL UNION 은 두개 이상의 SELECT 명령어에서 나온 결과를 합치는 연산문이다.
생각해야할 점은, UNION은 반드시 컴럼 수가 같아야 한다. 그리고 컬럼의 타입과 순서(Ordering)도 비슷해야 한다.
SQL UNION Syntax
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION
SELECT column_name(s) FROM table2;
SQL UNION ALL Syntax
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
UNION ALL
SELECT column_name(s) FROM table2;
UNION ALL으로 하게 되면 같은 value 값도 중복되서 나온다.
예를들어,
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
UNION
SELECT City FROM Suppliers
ORDER BY City;
City의 이름 순서대로 두 테이블에서 가져온 City 컬럼을 함쳐서 보여준다.
결과:
City |
---|
Aachen |
Albuquerque |
Anchorage |
Ann Arbor |
Annecy |
Barcelona |
Barquisimeto |
Bend |
Bergamo |
Berlin |
Bern |
UNION ALL을 안하면 중복된 데이터는 없다.
같은 예에서 UNION ALL을 붙이 결과는 다음과 같다.
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
결과:
City |
---|
Aachen |
Albuquerque |
Anchorage |
Ann Arbor |
Annecy |
Barcelona |
Barquisimeto |
Bend |
Bergamo |
Berlin |
Bern |
Lisboa |
Lisboa |
London |
London |
London |
London |
London |
London |
Lisboa, London 등과 같이 중복되는 데이터도 그대로 다 복사해서 보여준다.
반응형
'IT > SQL' 카테고리의 다른 글
SQL INSERT INTO SELECT 문 (0) | 2015.02.03 |
---|---|
SQL SELECT INTO 문 (0) | 2015.02.03 |
SQL LEFT JOIN 문 (0) | 2015.02.03 |
SQL Joins (0) | 2015.01.29 |
SQL BETWEEN (0) | 2015.01.29 |