728x90
반응형
UNION ALL은 MySQL 쿼리에서 사용되는 키워드 중 하나로, 두 개 이상의 SELECT 문의 결과를 결합하는 데 사용됩니다. UNION ALL은 중복된 행을 제거하지 않고 모든 결과를 포함하는 반면, 단순한 UNION 연산은 중복된 행을 제거합니다.
기본적인 문법은 다음과 같습니다.
SELECT column1, column2, ...
FROM table1
WHERE condition
UNION ALL
SELECT column1, column2, ...
FROM table2
WHERE condition;
여기서 각 SELECT 문은 독립적인 쿼리를 나타내며, UNION ALL은 두 결과 집합을 모두 합쳐 반환합니다.
예시를 살펴보겠습니다. 두 개의 테이블을 가정하겠습니다.
-- 테이블 1: employees
+----+--------+--------+
| ID | Name | Salary |
+----+--------+--------+
| 1 | John | 50000 |
| 2 | Alice | 60000 |
| 3 | Bob | 55000 |
+----+--------+--------+
-- 테이블 2: contractors
+----+--------+--------+
| ID | Name | Salary |
+----+--------+--------+
| 4 | Sarah | 70000 |
| 5 | Tom | 65000 |
| 6 | Emma | 75000 |
+----+--------+--------+
이제 이 두 테이블에서 이름과 연봉을 모두 가져오는 쿼리를 UNION ALL을 사용하여 작성해 보겠습니다.
SELECT Name, Salary FROM employees
UNION ALL
SELECT Name, Salary FROM contractors;
이 쿼리는 중복된 행을 제거하지 않고 모든 결과를 가져옵니다. 결과는 다음과 같습니다.
+--------+--------+
| Name | Salary |
+--------+--------+
| John | 50000 |
| Alice | 60000 |
| Bob | 55000 |
| Sarah | 70000 |
| Tom | 65000 |
| Emma | 75000 |
+--------+--------+
UNION ALL은 중복된 행을 허용하며, 성능상으로도 UNION 보다 빠르게 작동할 수 있습니다. 그러나 중복된 행을 제거하려면 UNION을 사용해야 합니다.
728x90
반응형
'코딩 > MySQL' 카테고리의 다른 글
MySQL에서 EXPLAIN을 사용하여 실행 계획을 확인 방법 (0) | 2024.11.13 |
---|---|
SQL 오류(1067): Invalid default value for 'datetime' (0) | 2024.02.21 |
MySQL에서 3개 컬럼을 합산하고 가장 높은 순으로 출력 (1) | 2023.08.06 |
mysql 테이블 이름 변경 (1) | 2023.07.20 |
mysql 중복제거 (0) | 2023.07.20 |