⚙️ 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
참고