데이터베이스 관리에서는 테이블에서 중복 레코드를 제거해야 하는 경우가 많습니다. MySQL은 이를 달성하기 위한 다양한 방법을 제공합니다.
한 가지 일반적인 접근 방식은 다음과 같은 쿼리를 사용하여 중복 행을 식별하는 것입니다.
SELECT COUNT(empssn), empssn FROM employee GROUP BY empssn HAVING COUNT(empssn) > 1
이 쿼리는 empssn 열에 중복 값이 있는 행을 식별합니다. 이러한 중복 항목을 삭제하려면 다음 쿼리를 사용할 수 있습니다.
DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT MIN(empid), empssn FROM employee GROUP BY empssn);
그러나 이 접근 방식을 사용하면 "FROM 절에서 업데이트할 대상 테이블 'employee'를 지정할 수 없습니다."라는 오류가 발생할 수 있습니다. 이 문제를 해결하려면 파생 테이블에 하위 쿼리를 래핑하면 됩니다.
DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT empid, empssn FROM (SELECT MIN(empid) AS empid, empssn FROM employee GROUP BY empssn) X);
파생 테이블을 사용하면 오류 없이 하위 쿼리에서 원래 테이블을 참조할 수 있습니다. 이 접근 방식은 원래 데이터 구조를 유지하면서 직원 테이블의 중복 행을 성공적으로 삭제합니다.
위 내용은 \'대상 테이블을 지정할 수 없습니다...\' 오류 없이 SQL 테이블에서 중복 행을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!