집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 Union과 Unionall의 차이점은 무엇입니까
union: 중복 행을 제외하고 여러 결과 집합에 대해 합집합 작업을 수행하고 동시에 정렬합니다.
union all: 정렬 없이 중복 행을 포함한 여러 결과 집합에 대해 합집합 작업을 수행합니다.
부서번호가 30번 미만인 직원의 정보, 부서번호가 20번 이상 40번 미만인 직원의 정보를 조회합니다.
① 먼저 부서번호가 30번 미만인 직원의 정보를 확인하세요.
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id < 30; ```
20개 이상 40개 미만 부서의 사원 정보를 조회합니다.
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id BETWEEN 20 and 40;```
3. Union을 사용하여 두 테이블을 연결합니다
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id < 30 UNION SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id BETWEEN 20 and 40; ```
결과는 기본적으로 정렬되고 중복이 제거됩니다. 두 테이블 모두 부서 정보가 30번이고 결과는 한 번만 나타납니다.
4. 다음으로 Union all을 사용하여 두 테이블을 연결합니다
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id < 30 UNION ALL SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id BETWEEN 20 and 40; ```
결과가 중복 제거되거나 정렬되지 않습니다. 정렬된 결과는 아래 결과와 비교됩니다. 먼저 20에서 40 사이의 직원 정보를 쿼리합니다. 그런 다음 30세 미만 직원 정보를 확인하세요.
⑤. 쿼리 결과 비교
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id BETWEEN 20 and 40 UNION ALL SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id < 30;```
는 기본적으로 정렬되지 않습니다.
위 내용은 MySQL에서 Union과 Unionall의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!