> 데이터 베이스 > MySQL 튜토리얼 > SQL의 'NOT EXISTS'를 사용하여 누락된 레코드를 효율적으로 찾는 방법은 무엇입니까?

SQL의 'NOT EXISTS'를 사용하여 누락된 레코드를 효율적으로 찾는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-10 09:52:10
원래의
1006명이 탐색했습니다.

How to Efficiently Find Missing Records Using SQL's `NOT EXISTS`?

SELECT * WHERE NOT EXISTS: 누락된 레코드 찾기

SQL 쿼리 "SELECT * from 직원 WHERE NOT EXISTS(SELECT name FROM eotm_dyn) "는 "employees" 테이블에서 이름이 없는 모든 행을 검색하는 것을 목표로 합니다. "eotm_dyn" 테이블. 그러나 이 쿼리는 불완전하며 결과를 반환하지 않습니다.

쿼리를 완료하려면 공통 필드(일반적으로 고유 식별자 필드)에서 두 테이블을 조인해야 합니다. 테이블이 "employeeID" 필드에 조인되었다고 가정하면 수정된 쿼리는 다음과 같습니다.

SELECT *
FROM employees e
WHERE NOT EXISTS
(
    SELECT null
    FROM eotm_dyn d
    WHERE d.employeeID = e.id
)
로그인 후 복사

"NOT EXISTS" 하위 쿼리는 "eotm_dyn" 테이블에서 "employeeID"가 있는 행이 없는지 확인합니다. "employees" 테이블에 있는 현재 행의 "id"와 일치합니다. 그러한 행이 없으면 외부 쿼리는 "employees" 테이블의 전체 행을 반환합니다. 이 접근 방식을 사용하면 "eotm_dyn" 테이블에 항목이 없는 직원만 선택됩니다.

또는 NULL 값에 대한 후속 필터와 함께 LEFT JOIN을 사용하여 쿼리를 작성할 수 있습니다.

SELECT *
FROM employees e
LEFT JOIN eotm_dyn d
ON e.id = d.employeeID
WHERE d.name IS NULL
로그인 후 복사

그러나 이 방법은 특히 대규모 데이터베이스의 경우 NOT EXISTS 하위 쿼리를 사용하는 것보다 효율성이 떨어질 수 있습니다.

위 내용은 SQL의 'NOT EXISTS'를 사용하여 누락된 레코드를 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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