코드 8-21을 실행하면 오류가 납니다. 오류 메시지에 “The used SELECT statements have a different number of columns”라고 나왔네요. 이는 SELECT 문장에서 조회하는 칼럼 수가 달라서 발생한 오류입니다. 첫 번째 SELECT 문에서는 col1, col2를 명시했지만, 두 번째 SELECT 문에서는 col1만 명시했기 때문이죠. UNION 절을 사용할 때는 연결되는 SELECT 문에 반드시 동일한 수의 칼럼을 명시해야 합니다.
코드 8-22
SELECT col1 FROM tbl1
UNION ALL
SELECT col1 FROM tbl2;
실행결과
코드 8-22는 코드 8-19에서 UNION 대신 UNION ALL을 사용했습니다. UNION을 사용하면 중복을 제거하지만, UNION ALL을 사용하면 전체 데이터를 조회합니다. 따라서 결과로 총 5건이 조회됐습니다.
코드 8-23
SELECT col1, col2 FROM tbl1
ORDER BY 1 DESC
UNION
SELECT col1, col2 FROM tbl2;
실행결과