> 데이터 베이스 > MySQL 튜토리얼 > SQL의 LEFT JOIN이 한 테이블에는 존재하지만 다른 테이블에는 존재하지 않는 데이터를 어떻게 식별할 수 있습니까?

SQL의 LEFT JOIN이 한 테이블에는 존재하지만 다른 테이블에는 존재하지 않는 데이터를 어떻게 식별할 수 있습니까?

Barbara Streisand
풀어 주다: 2025-01-03 02:16:38
원래의
516명이 탐색했습니다.

How Can a LEFT JOIN in SQL Identify Data Existing in One Table But Not Another?

LEFT JOIN을 사용하여 존재하지 않는 데이터 찾기

SQL에서는 두 테이블을 비교하여 하나의 테이블에 존재하는 데이터를 식별해야 하는 경우가 있습니다. 하지만 다른 하나는 아닙니다. 이 시나리오는 누락된 레코드를 확인할 때 흔히 발생합니다.

다음 테이블을 고려하세요.

TABLE1

id name address
1 mm 123
2 nn 143

TABLE2

name age
mm 6
oo 9

존재하지 않는 것을 찾는 것이 목표입니다. TABLE2와 비교하여 TABLE1의 이름을 지정합니다. 이 경우 이름이 "nn"인 TABLE1의 두 번째 행이 TABLE2에 없습니다.

INNER JOIN을 사용한 초기 시도:

SELECT w.*
FROM TABLE1 w
INNER JOIN TABLE2 v
ON w.name <> v.name
로그인 후 복사

원하는 검색에 실패합니다. INNER JOIN은 두 테이블 모두에서 일치하는 행만 반환하기 때문입니다.

해결책은 LEFT JOIN을 사용하는 것입니다. 대신:

SELECT w.*
FROM TABLE1 w
LEFT JOIN TABLE2 v ON w.name = v.name
WHERE ISNULL(v.name);
로그인 후 복사

LEFT JOIN은 외부 조인을 수행합니다. 즉, 오른쪽 테이블(TABLE2)에 일치하는 행이 있는지 여부에 관계없이 왼쪽 테이블(TABLE1)의 모든 행을 반환합니다. ISNULL(v.name) 조건은 TABLE2의 해당 이름 필드가 null인 TABLE1의 행을 확인하여 해당 이름이 TABLE2에 존재하지 않음을 나타냅니다.

출력은 다음과 같습니다.

id name address
2 nn 143

이 쿼리는 존재하지 않는 이름 "nn"을 사용하여 TABLE1에서 행을 성공적으로 검색합니다.

위 내용은 SQL의 LEFT JOIN이 한 테이블에는 존재하지만 다른 테이블에는 존재하지 않는 데이터를 어떻게 식별할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿