728x90
SQL UNION 연산문
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 등과 같이 중복되는 데이터도 그대로 다 복사해서 보여준다.
'my_lesson > _SQL' 카테고리의 다른 글
| SQL - JOIN (0) | 2016.02.25 |
|---|---|
| SQL - LEFT JOIN (0) | 2016.02.25 |
| SQL - DROP (0) | 2016.02.25 |
| SQL - CREATE INDEX (0) | 2016.02.25 |
| SQL - CREATE (0) | 2016.02.25 |
댓글