Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

이것은, 짝수번째(3의배수가 짝수번째가되는상황제외)에서 복제를 하였기때문에 중복을 제거한 합이기 때문입니다.

UNION에서 중복은 제거된다라는 속성은 중요한 내용이며, 중복을 무시할시 UNION ALL을 사용합니다.



그럼 UNION수행이 JPA에서는 어떻게 작동되는지 확인해보겠습니다.

...

Code Block
languagesql
themeEmacs
SELECT address,age,name,phoneNbr,sex FROM db_example.address a1
WHERE a1.name IN (SELECT name FROM db_example.address2);

SELECT a.address,a.age,a.name,a.phoneNbr,a.sex 
FROM db_example.address a, db_example.address2 b 
WHERE a.name = b.name;



SELECT address,age,name,phoneNbr,sex FROM db_example.address
INTERSECT
SELECT address,age,name,phoneNbr,sex FROM db_example.address2;

...

Code Block
languagesql
themeEmacs
SELECT address,age,name,phoneNbr,sex FROM db_example.address a1
WHERE a1.name NOT IN (SELECT name FROM db_example.address2);




SELECT address,age,name,phoneNbr,sex FROM db_example.address
EXCEPT
SELECT address,age,name,phoneNbr,sex FROM db_example.address2;
Note

합집합,교집합은 순서가 다르다고 결과가 달라지지 않습니다. ( 드라이븐 시작조건에 의해 성능이 달라질순 있어도 )

하지만 차집합은 빼는것이기때문에 교환법칙이 성립되지않기때문에 순서에 유의합니다.

교환법칙

A +B = B + A : 같음으로 교환법칙 성립

A - B = B - A : 같지 않다.


UNION VS JOINS

이후 JOIN을 별도로 설명을 하겠지만, UNION과 JOIN은 아래와 같은 큰차이가 있습니다.

JOINUNION

Image Added

Image Added

  • 두개의 필드가 모두 합해지는 병렬조합
  • 필드명이 모두 합해져서,동일 필드명 사용에 유의해야합니다.
  • 엔티티가 다른 관계도가 있는 두 테이블을 하나의 결과로 만들때 사용됩니다.
  • 상하(직렬)조합이며,
  • 합하려는 양쪽 필드의 개수가 동일해야함
  • 컬럼명은 첫번째 선택된 테이블의 컬럼명에 영향받음
  • 전체행 중복제거 연산(Distinct)이 수행되기 때문에 성능에 유의
  • 엔티티가 유사한 결과 테이블을 하나의 결과로 만들때 사용됩니다.