집합 연산자 조건
집합연산자 사용하기위한 조건 : SELECT절의 컬럼 수 동일, SELECT절의 동일위치에 존재하는 컬럼의 데이터 타입 동일
집합연산자 종류
UNION | 개별 SQL문의 결과에 대해 합집합 연산을 수행. 단, 결과에서 모든 중복된 행은 하나의 행으로 만든다. |
UNION ALL | 개별 SQL문의 결과에 대해 합집합 연산을 수행. 중복된 행도 그대로 표시. 즉, 단순히 개별 SQL문의 결과를 합쳐 하나의 결과로 출력. 중복되지않을 경우 UNION과 결과 동일. |
INTERSECT | 개별 SQL문의 결과에 대해 교집합 연산을 수행. 단, 결과에서 모든 중복된 행은 하나의 행으로 만든다. |
EXCEPT | 개별 SQL문의 결과에 대해 차집합 연산을 수행. 단, 결과에서 모든 중복된 행은 하나의 행으로 만든다. (Oracle : MINUS, SQL Server : EXECEPT 사용) |
SELECT와의 차이점..?
MINUS, INTERSECT은 Mysql에서 지원하지않음
MySql에서는 FULL OUTER JOIN을 지원하지않기때문에 LEFT JOIN에 UNION RIGHT JOIN하면됨