⚙️ backend/🛢️ database

[MySQL] UNION을 사용하여 여러 집합을 하나의 집합으로 결합하기

dev!n 2023. 3. 6. 23:58

SQL에서 UNION 연산자는 두 개 이상의 SELECT 문의 결과를 하나의 집합으로 결합하는 데 사용됩니다. 각 SELECT 문의 결과는 대응하는 필드의 이름과 타입이 같아야 합니다.

# 예시 쿼리
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = 1
UNION
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = 2;

이 예제에는 employees 테이블에서 employee_id, first_name 및 last_name 열을 선택합니다. 첫 번째 SELECT 문은 department_id 1의 직원만 선택하고, 두 번째 SELECT 문은 department_id 2의 직원만 선택합니다.

UNION 연산자는 이 두 SELECT 문의 결과를 하나의 집합으로 결합합니다. 이 결과 집합에는 두 SELECT 문에서 선택한 모든 행이 중복 제거된 상태로 포함됩니다. UNION은 뒤에 DISTINCT가 생략된 것과 같습니다. 결과 집합에 중복된 데이터도 포함하려면 UNION ALL을 합니다.

# 결과
employee_id  |  first_name  |  last_name
-------------|--------------|------------
1            |  John        |  Smith
2            |  Jane        |  Doe
3            |  Tom         |  Jones
4            |  Bob         |  Johnson
5            |  Mary        |  Smith
6            |  Jim         |  Brown

 

참고

http://www.tcpschool.com/mysql/mysql_multipleTable_union