UNION 연산자는 2개 이상의 SELECT 문에서 2개의 결과 집합을 결합하는 데 사용됩니다. 이 SELECT 문에서 동일한 행을 삭제합니다.
UNION 연산자의 각 SELECT는 해당 데이터 유형의 결과 집합에서 동일한 수의 열을 가져야 합니다.
UNION 연산자 구문
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien]
UNION
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE
dieu_kien];
변수 이름 또는 변수 값
bieu_thuc1, bieu_thuc2, . bieu_thucn
검색하려는 열 또는 계산 값입니다.
상태
테이블이 레코드를 가져오려고 합니다. FROM 절에 최소한 1개의 테이블이 있어야 합니다.
dieu_kien 위치
옵션. 선택한 레코드에 대해 조건이 충족되어야 합니다.
참고:
- 2개의 SELECT 문에는 동일한 수의 표현식이 있어야 합니다.
- 각 SELECT 문의 해당 열 수는 데이터 유형이 동일해야 합니다.
- UNION 연산자는 중복 행을 지웁니다.
더 많은 UNION ALL 연산자 보기
예:정보 필드 반환
예를 들어 UNION 연산자는 여러 SELECT 문(및 데이터 유형이 동일한 필드)에서 필드를 반환합니다.
SELECT sanpham_id
FROM sanpham
UNION
SELECT sanpham_id
FROM hangtonkho;
위의 예에서 sanpham_id가 sanpham 및 hangtonkho 테이블 모두에 나타나면 결과 집합에는 1개의 sanpham_id만 나타납니다. 중복 레코드를 제거하지 않으려면 UNION ALL 연산자를 사용하십시오.
예:ORDER BY 사용
UNION 연산자는 ORDER BY 절을 사용하여 쿼리 결과를 정렬할 수 있습니다.
SELECT danhba_id, danhba_ten
FROM danhba
WHERE ten_trang = 'QuanTriMang.com'
UNION
SELECT congty_id, congty_ten
FROM congty
WHERE ten_trang = 'TrangCuaBan.com'
ORDER B
Y 2;
이 예에서는 두 SELECT 문의 열 이름이 다르기 때문에 ORDER BY 문의 열을 결과 집합의 위치별로 참조하는 것이 더 쉽습니다. 위의 예에서 우리는 ORDER BY 2라는 문구에 명시된 것처럼 namba_ten / congty_ten을 기준으로 결과를 오름차순으로 필터링합니다.
danhba_ten / congty_ten은 결과 집합의 두 번째 위치에 있습니다.