MYSQL
UNION, UNION ALL
soo15
2023. 5. 23. 17:43
1. UNION
중복된 행은 제거하고 쿼리의 결과를 합친다.
SELECT EmployeeID, ShipperID
FROM Orders
WHERE EmployeeID = 3
UNION
SELECT EmployeeID, ShipperID
FROM Orders
WHERE EmployeeID = 5
출력결과
EmployeeID | ShipperID |
3 | 1 |
3 | 2 |
3 | 3 |
5 | 1 |
5 | 2 |
5 | 3 |
> EmployeeID가 3인 행과 5인 행을 합쳐
중복을 제거하고 출력한다.
2. UNION ALL
중복된 행을 제거하지 않고 쿼리의 결과를 합친다.
중복을 제거하지 않으므로 UNION보다 속도가 빠르다.
SELECT EmployeeID, ShipperID
FROM Orders
WHERE EmployeeID = 3
UNION ALL
SELECT EmployeeID, ShipperID
FROM Orders
WHERE EmployeeID = 5
출력결과
EmployeeID | ShipperID |
3 | 1 |
3 | 2 |
3 | 2 |
: : |
: : |
5 | 3 |
5 | 1 |
> EmployeeID가 3인 행과 5인 행을 합쳐
중복을 제거하지 않고 출력한다.
(EmployeeID이 3이고 ShipperID이 2인 값이 여러 번 출력되었다.)