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인 값이 여러 번 출력되었다.)