A 테이블 - B 테이블 쿼리

A 테이블 - B 테이블

A테이블B테이블같은 컬럼이 있을 때, A테이블의 값 중 B테이블의 값에서 없는 데이터만 나타내는 쿼리를 작성해봅시다.

 

일단, 각 테이블에 다음과 같은 데이터가 존재한다고 가정합시다.

A테이블

과일
사과
바나나
포도
수박

 

B테이블

과일
사과
수박

 

 

그러면 A테이블 - B테이블을 어떻게 하면 될까요?

크게 두가지 방법이 있습니다.

 


방법 1. NOT IN 사용

NOT IN을 사용하여, B테이블에 없는 값을 가진 A테이블을 나타내 줍니다.

쿼리는 다음과 같아요.

(이 떄, name은 비교할 컬럼입니다.)

SELECT *
FROM A
WHERE name NOT IN (SELECT name FROM B);

 

결과

그러면 정상적으로 바나나포도만 나타나는 것을 확인할 수 있습니다.

 


방법 2. LEFT JOIN 사용

LEFT JOIN을 사용하여 나타낼 수도 있어요.

쿼리는 다음과 같습니다.

SELECT A.*
FROM A
LEFT JOIN B ON A.name = B.name
WHERE B.name IS NULL;

 

결과

그러면 방금 전과 같이, 정상적으로 나타나는 것을 확인할 수 있어요.

 

이를 활용하여, 데이터를 비교하거나 필요한 데이터를 필터링하여 찾을 수 있을 것 같습니다!

 

참고

진격의 파파 님의 SQL LEFT JOIN 구문

젠트 님의 [MSSQL] IN 연산자 사용법 (NOT IN, 서브쿼리)

'Back-End Study > DBMS' 카테고리의 다른 글

MySQL vs PostgreSQL  (0) 2024.10.30
PostgreSQL  (4) 2024.10.25
SQL의 여러 종류의 키(Key)  (1) 2024.09.06
사용자 계정 생성 및 삭제  (2) 2023.11.20
AQueryTool  (0) 2022.09.08