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 중국어 웹사이트의 기타 관련 기사를 참조하세요!