UNION이란? 2개 이상 테이블에 존재하는 같은 성격의 값을 하나의 쿼리로 추출하는 것
사용하기 전 유의사항
- 대응하는 칼럼의 이름이 다르다면 하나로 통일해주는 게 좋아요. 그래서 다르다면 AS(별칭)을 통해서 같게 해줍니다.
예시) TABLE_1의 asia 칼럼과 TABLE_2의 country 칼럼을 UNION을 통해 하나의 쿼리로 추출해보겠습니다.
1. 중복되지 않은 값만 추출하는 법 (= UNION DISTINCT or UNION)
SELECT asia AS 'country' FROM TABLE_1
UNION -- UNION DISTINCT과 결괏값이 같다
SELECT country FROM TABLE_2;
두 칼럼의 이름이 다르기 때문에 'country'로 통일 시켰어요. 단, 별칭은 UNION을 사용하기 전에 입력해줘야 해요
결괏값을 보면 중복이 허용 안되기 때문에 TABLE_2의 '한국'이 빠진 걸 알 수 있어요
2. 중복 허용하고 모든 값 추출하는 법 (= UNION ALL)
SELECT asia AS 'country' FROM TABLE_1
UNION ALL
SELECT country FROM TABLE_2;
중복을 허용하고 모든 값을 추출하고 싶을 때는 UNION ALL을 사용하면 돼요
중복을 허용하고 모든 값을 추출했기 때문에 UNION 결괏값과 다르다는 걸 알 수 있어요
3. 조건 및 정렬하기
SELECT asia AS 'country' FROM TABLE_1 WHERE num < 2
UNION
SELECT country FROM TABLE_2
ORDER BY country;
UNION을 사용할 때 WHERE절, ORDER BY절 등을 사용할 수 있어요.
결괏값을 보시면 조건 성립과 정렬이 잘 되어 있죠?