Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memadam Baris Pendua daripada Jadual SQL tanpa Ralat \'Anda tidak boleh menentukan jadual sasaran...\'?

Bagaimana untuk Memadam Baris Pendua daripada Jadual SQL tanpa Ralat \'Anda tidak boleh menentukan jadual sasaran...\'?

Linda Hamilton
Lepaskan: 2024-11-01 01:12:01
asal
1012 orang telah melayarinya

How to Delete Duplicate Rows from an SQL Table without the

Memadamkan Baris Pendua daripada Jadual SQL

Dalam pengurusan pangkalan data, selalunya perlu mengalih keluar rekod pendua daripada jadual. MySQL menyediakan pelbagai cara untuk mencapainya.

Satu pendekatan biasa ialah mengenal pasti baris pendua menggunakan pertanyaan seperti:

SELECT COUNT(empssn), empssn FROM employee GROUP BY empssn HAVING COUNT(empssn) > 1
Salin selepas log masuk

Pertanyaan ini mengenal pasti baris dengan nilai pendua dalam lajur empssn. Untuk memadamkan pendua ini, anda boleh menggunakan pertanyaan berikut:

DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT MIN(empid), empssn FROM employee GROUP BY empssn);
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini boleh mengakibatkan ralat "Anda tidak boleh menentukan jadual sasaran 'pekerja' untuk kemas kini dalam klausa FROM." Untuk menangani perkara ini, anda boleh membungkus subkueri dalam jadual terbitan:

DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT empid, empssn FROM (SELECT MIN(empid) AS empid, empssn FROM employee GROUP BY empssn) X);
Salin selepas log masuk

Menggunakan jadual terbitan membolehkan anda merujuk jadual asal dalam subkueri tanpa ralat. Pendekatan ini berjaya memadamkan baris pendua dalam jadual pekerja sambil mengekalkan struktur data asal.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua daripada Jadual SQL tanpa Ralat \'Anda tidak boleh menentukan jadual sasaran...\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan