두개 이상의 테이블의 합집합, 교집합, 여집합을 구하는 식 중에

성능 좋고 빠르게 출력하는 여자친구를 소개합니다.


합집합

물론 교집합되는 부분은 한번만 출력하지요. ^^!
select PKey, Val
from (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

+ Recent posts