INNER JOIN, LEFT JOIN을 이용하면 두 개의 테이블을 좌우로 붙여서 출력할 수 있다.
UNION과 UNION ALL은 두 개의 테이블을 좌우가 아닌 위아래로 붙여서 출력해준다.
UNION과 UNION ALL의 사용법을 알아보자.
UNION
<example1>
ID | 이름 | 나이 |
1 | 강** | 20 |
2 | 김** | 21 |
<example2>
ID | 이름 | 나이 |
1 | 강** | 20 |
3 | 박** | 27 |
위의 두 테이블을 UNION을 이용해 위아래로 붙여보자.
SELECT *
FROM example1
UNION
SELECT *
FROM example2
↓↓↓
ID | 이름 | 나이 |
1 | 강** | 20 |
2 | 김** | 21 |
3 | 박** | 27 |
UNION은 두 테이블에서 중복된 값은 없애고, 고유한 값만 출력한다.
반면에 UNION ALL은 중복된 값까지 모든 값을 출력한다.
※ 맨 마지막에 ORDER BY → UNION을 한 결과 전체 테이블의 특정 컬럼에 대해 정렬
UNION ALL
example1과 example2 테이블을 UNION ALL을 이용해 위아래로 붙인다면
다음과 같이 출력된다.
ID | 이름 | 나이 |
1 | 강** | 20 |
2 | 김** | 21 |
1 | 강** | 20 |
3 | 박** | 27 |
<예제 문제>
ex1) Employees 테이블에서 EmployeeID가 3이하 또는 9이상인 행을 출력해라.
SELECT *
FROM employees
WHERE employeeid <= 3
UNION
SELECT *
FROM employees
WHERE employeeid >= 9
ex2) Suppliers 테이블에서 Country가 USA 또는 UK인 행을 출력해라.
SELECT *
FROM Suppliers
WHERE country = 'USA'
UNION
SELECT *
FROM suppliers
WHERE country = 'UK'
↘↘↘
[백문이불여일타] 데이터 분석을 위한 중급 SQL
'📖 STUDY > SQL' 카테고리의 다른 글
[SQL] 서브쿼리 (0) | 2022.03.31 |
---|---|
[SQL] INSERT, UPDATE, DELETE (0) | 2022.03.26 |
[SQL] DATE_ADD, DATE_SUB (0) | 2022.03.15 |
[SQL] INNER JOIN, LEFT JOIN, RIGHT JOIN, SELF JOIN (0) | 2022.03.15 |
[SQL] CASE_테이블 피봇 (0) | 2022.03.08 |