ホームページ > データベース > mysql チュートリアル > 「ターゲット テーブルを指定できません...」エラーを発生させずに SQL テーブルから重複行を削除する方法

「ターゲット テーブルを指定できません...」エラーを発生させずに SQL テーブルから重複行を削除する方法

Linda Hamilton
リリース: 2024-11-01 01:12:01
オリジナル
1012 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート