> 데이터 베이스 > MySQL 튜토리얼 > Table2에서 일치하는 항목 없이 Table1에서 행을 찾고 제거하는 방법은 무엇입니까?

Table2에서 일치하는 항목 없이 Table1에서 행을 찾고 제거하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-15 17:26:44
원래의
507명이 탐색했습니다.

How to Find and Remove Rows in Table1 Without Matching Entries in Table2?

다른 테이블에 일치하는 항목이 없는 데이터베이스의 행 검색: 자세한 설명

데이터베이스 관리 세계에서는 외래 키 제약 조건 누락으로 인해 데이터 무결성이 손상되는 경우가 많습니다. 이러한 문제를 해결하려면 참조 테이블에서 일치 항목이 없는 행을 식별하고 삭제해야 합니다. 이 문서에서는 기능의 예와 기본 메커니즘에 대한 자세한 설명을 제공하여 이 작업을 수행하는 쿼리를 작성하는 방법을 자세히 설명합니다.

Table1과 Table2라는 두 개의 테이블이 있다고 가정합니다. 여기서 Table1에는 Table2에 대한 외래 키 참조로 사용되는 값이 포함되어 있습니다(단, 외래 키 제약 조건은 없음). 우리의 목표는 Table2에서 일치하는 항목이 없는 Table1의 모든 행을 반환하여 삭제할 수 있도록 하는 쿼리를 구성하는 것입니다.

쿼리 구성 및 해석

다음 검색어는 요구 사항을 충족합니다.

<code class="language-sql">SELECT t1.ID
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.ID = t2.ID
WHERE t2.ID IS NULL;</code>
로그인 후 복사

쿼리 분해:

  • LEFT JOIN: 이 조인 유형은 Table1(t1)의 모든 행과 Table2(t2)의 일치하는 행(ID 열 기준)을 반환합니다. 이 경우 Table2에 일치 항목이 있는지 여부에 관계없이 Table1의 모든 행이 반환됩니다.
  • ON t1.ID = t2.ID: 이 조건은 조인 조건, 즉 두 테이블의 ID 열을 일치시키는 조건을 지정합니다.
  • t2.ID가 NULL인 경우: 이 조건은 Table2에서 반환된 ID(t2.ID)가 NULL인지 확인하여 결과를 필터링합니다. 그렇다면 Table1의 해당 ID와 일치하는 행이 Table2에 없다는 의미입니다. t2.ID가 NULL인 행으로 결과를 제한함으로써 Table2에 일치 항목이 없는 Table1의 모든 행을 효과적으로 검색합니다.

이 쿼리를 사용하면 Table2에 해당 항목이 없는 Table1의 행을 쉽게 식별하고 삭제할 수 있으므로 데이터베이스의 데이터 무결성을 유지할 수 있습니다.

위 내용은 Table2에서 일치하는 항목 없이 Table1에서 행을 찾고 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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