특훈 테이블의 합집합, 교집합, 여집합을 sql 로
2010. 3. 15. 17:04ㆍ99. 정리전 - IT/15. SQL 따라잡기
두개 이상의 테이블의 합집합, 교집합, 여집합을 구하는 식 중에
성능 좋고 빠르게 출력하는 여자친구를 소개합니다.
합집합
물론 교집합되는 부분은 한번만 출력하지요. ^^!
select PKey, Valfrom (select PKey, Val from TBL1 union all
select PKey, Val from TBL2) a
group by PKey, Val
교집합
select PKey,Val
from (select PKey, Val from TBL1 union all
select PKey, Val from TBL2) a
group by PKey, Val
having count(*) > 1; <-합집합에 요거 한줄만 추가
옂집합
select PKey,Val
from (select 1 as ID, PKey, Val from TBL1 union all
select 2 as ID, PKey, Val from TBL2) a
group by PKey, Val
having max(ID) = 1;
TAL2의 여집합을 구하고 싶다면
「1 as ID」를「2 as ID」로
「2 as ID」를「1 as ID」로 바꾼다.
이해가 안가거나 결과가 미심쩍다면 아래의 사이트로 이동 후 공부 후 확인할 것~!
출췌 : http://codezine.jp/article/detail/3906