상세 컨텐츠

본문 제목

SQL 큐브리드 테이블 간 차집합 difference 위,아래 순서 차이

IT/DB

by JR 2026. 1. 16. 16:23

본문

300x250
반응형

 

 

 

 

🔑 한 줄 결론

CUBRID의 DIFFERENCE는 “위 쿼리 − 아래 쿼리” 입니다.
👉 순서 바꾸면 결과가 완전히 달라집니다.


1️⃣ 개념부터 정리 (집합 관점)

A DIFFERENCE B

= A에는 있고 B에는 없는 값

2️⃣ 형님이 쓴 두 쿼리 비교

① 쿼리 1

SELECT a
FROM table1

DIFFERENCE

SELECT a
FROM table2;

의미

table1에는 있지만 table2에는 없는 a


② 쿼리 2

SELECT a
FROM table2

DIFFERENCE

SELECT a
FROM table1;

의미

table2에는 있지만 table1에는 없는 a


3️⃣ 예제로 보면 바로 이해됨

예시 데이터

table1

a

1
2
3

table2

a

2
3
4

쿼리 1 결과

1

쿼리 2 결과

4

👉 완전히 다름


4️⃣ 중요한 특징들 (CUBRID)

✔ 중복 제거됨

SELECT a FROM table1
DIFFERENCE
SELECT a FROM table2;
  • 내부적으로 SET 연산
  • DISTINCT 자동 적용

✔ NULL 처리

  • NULL도 비교 대상
  • 위 쿼리에만 있으면 결과에 포함

✔ 컬럼 개수 & 타입 동일해야 함

컬럼 수 동일
데이터 타입 호환

5️⃣ 실무에서 자주 쓰는 패턴

① 기준 테이블 - 비교 테이블

-- 기준 데이터 중 빠진 것 찾기
SELECT id
FROM base_table
DIFFERENCE
SELECT id
FROM compare_table;

② 동기화 누락 데이터 검증

-- A에는 있는데 B에는 없는 데이터

6️⃣ 대체 표현 (JOIN 방식)

SELECT a
FROM table1 t1
LEFT JOIN table2 t2
       ON t1.a = t2.a
WHERE t2.a IS NULL;

📌 대량 데이터 + 인덱스 있을 땐 이게 더 빠를 수 있음


🚨 실무 주의사항

  • 순서 바꾸면 의미 완전히 반대
  • DIFFERENCE는 정렬/중복 제거 비용 있음
  • 대용량이면 JOIN 방식 검토

한 줄 요약

A DIFFERENCE B ≠ B DIFFERENCE A
항상 **“위 − 아래”**라고 기억하시면 됩니다.


 

추가로 아래처럼 3개도 이어서 쓸 수 있다고 합니다.

 

select a from table1 
difference 
select a from table2 
difference 
select a from table3
;

 

 

 

 

300x250
반응형

관련글 더보기