>  기사  >  데이터 베이스  >  \"대상 테이블을 지정할 수 없습니다...\" 오류 없이 SQL 테이블에서 중복 행을 삭제하는 방법은 무엇입니까?

\"대상 테이블을 지정할 수 없습니다...\" 오류 없이 SQL 테이블에서 중복 행을 삭제하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-01 01:12:01927검색

How to Delete Duplicate Rows from an SQL Table without the

SQL 테이블에서 중복 행 삭제

데이터베이스 관리에서는 테이블에서 중복 레코드를 제거해야 하는 경우가 많습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.