카테고리 없음
[mysql] 마이너스 연산자가 mysql에서 오류를 제공합니다.
필살기쓰세요
2021. 1. 17. 02:14
MySQL은 EXCEPT
또는 MINUS
.
당신은 사용할 수 있습니다 NOT EXISTS
, OUTER JOIN ... NULL
또는 NOT IN
(NULL을 조심) 반 반에 가입 할 수 있습니다.
여기에서 예제 및 성능 비교를 참조하십시오.
-------------------매우 큰 데이터 세트에 대해 "마이너스"쿼리를 수행하기 위해 "없음"또는 "존재하지 않음"을 사용하면 쿼리 시간이 매우 길어질 수 있습니다. 다른 데이터베이스에서 수행하는 집합 기반 작업 (중복 항목 병합, 정렬, 제거)을 모방하는 방법을 생각해 냈습니다.
select column1, count(*), min(setnum)
from
(
select distinct column1, 1 as setnum
from table1
union all
select distinct column1, 2 as setnum
from table2
) as tbl_a
group by column1
having count(*) = 1 and min(setnum) = 1
위의 선택은 존재하지 않거나 존재하지 않는 사용에 비해 큰 데이터 세트에서 매우 우수한 성능을 제공합니다. 기본적으로 두 번째 세트가 아닌 첫 번째 세트에만 존재하는 행을 찾습니다. 나는 최근에 성능면에서 매우 성공적으로 이것을 자주 사용했습니다.
출처
https://stackoverflow.com/questions/39915984