UNION vs UNIONALL 에 대해

오라클 게시판에 보시면 union 과 union all에 대해 설명해 두었습니다.
mysql 도 이와 다르지 않습니다.

  • union : 동일 결과값이 존재할 경우 하나만 출력
  • unionall : 모든 결과값 출력

tb1 이라는 테이블의 field1 이라는 필드에 아래값이 존재

tb1.field1

1
2
3
4

tb2 이라는 테이블의 field1 이라는 필드에 아래값이 존재

tb2.field1

3
4
5
6

UNION 사용시

select field1 from tb1 union select field1 from tb2

result field1

1
2
3
4
5
6

UNIONALL 사용시

select field1 from tb1 unionall select field1 from tb2

result field1

1
2
3
4
3
4
5
6

union 과 unionall을 사용할때는 테이블의 조건들이 모두 맞아야 합니다.
(필드명, 필드타입...)
그러나 그렇지 못한 경우는 일부러 맞추어 주어야 합니다.

select field1 as abc, 0 as zerofield..... from tb1
unionall
select abc, zerofield.... from tb2

UNION ALL 이 트래픽이 적게 걸리므로 추천

평점을 남겨주세요
평점 : 5.0
총 투표수 : 1