코드 8-20
SELECT col1, col2 FROM tbl1
UNION
SELECT col1, col2 FROM tbl2;
실행결과
코드 8-20에서는 SELECT 절에 2개의 칼럼을 명시했습니다. 결과를 보면 두 테이블에 있는 모든 건이 조회됐습니다. UNION을 사용하면 중복 건을 제외한다고 했습니다. 그런데 이전 결과에서는 3건만 조회됐는데, 왜 이번에는 5건이 모두 조회됐을까요?
UNION을 사용했을 때 중복 건은 SELECT 절에 명시한 각 칼럼의 조합을 기준으로 판단합니다. SELECT 절에 col1 하나만 명시하면 이 칼럼 값을 기준으로 중복을 판단하고, col1, col2처럼 두 개를 명시하면 col1과 col2 값을 조합해 중복 건을 판단합니다. 따라서 이 경우에는 col1 값이 1, 2로 같지만, col2와 조합하면 중복 건이 없습니다. 예를 들어 1, ‘가’와 1, ‘A’는 같은 건이 아니죠.
코드 8-21
SELECT col1, col2 FROM tbl1
UNION
SELECT col1 FROM tbl2;
실행결과