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;
결과
그러면 방금 전과 같이, 정상적으로 나타나는 것을 확인할 수 있어요.
이를 활용하여, 데이터를 비교하거나 필요한 데이터를 필터링하여 찾을 수 있을 것 같습니다!
참고
'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 |