ホームページ  >  記事  >  データベース  >  「ターゲット テーブルを指定できません...」エラーを発生させずに 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 では、これを実現するためのさまざまな方法が提供されています。

一般的なアプローチの 1 つは、次のようなクエリを使用して重複行を識別することです。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。