Heim > Datenbank > MySQL-Tutorial > Wie lösche ich doppelte Zeilen aus einer SQL-Tabelle ohne den Fehler „Sie können die Zieltabelle nicht angeben ...'?

Wie lösche ich doppelte Zeilen aus einer SQL-Tabelle ohne den Fehler „Sie können die Zieltabelle nicht angeben ...'?

Linda Hamilton
Freigeben: 2024-11-01 01:12:01
Original
1018 Leute haben es durchsucht

How to Delete Duplicate Rows from an SQL Table without the

Doppelte Zeilen aus einer SQL-Tabelle löschen

Bei der Datenbankverwaltung ist es häufig erforderlich, doppelte Datensätze aus einer Tabelle zu entfernen. MySQL bietet eine Vielzahl von Möglichkeiten, dies zu erreichen.

Ein gängiger Ansatz besteht darin, doppelte Zeilen mithilfe einer Abfrage wie der folgenden zu identifizieren:

SELECT COUNT(empssn), empssn FROM employee GROUP BY empssn HAVING COUNT(empssn) > 1
Nach dem Login kopieren

Diese Abfrage identifiziert Zeilen mit doppelten Werten in der Spalte empssn. Um diese Duplikate zu löschen, können Sie die folgende Abfrage verwenden:

DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT MIN(empid), empssn FROM employee GROUP BY empssn);
Nach dem Login kopieren

Dieser Ansatz kann jedoch zu dem Fehler „Sie können die Zieltabelle ‚Mitarbeiter‘ für die Aktualisierung in der FROM-Klausel nicht angeben.“ führen. Um dieses Problem zu beheben, können Sie die Unterabfrage in eine abgeleitete Tabelle einschließen:

DELETE FROM employee WHERE (empid, empssn) NOT IN (SELECT empid, empssn FROM (SELECT MIN(empid) AS empid, empssn FROM employee GROUP BY empssn) X);
Nach dem Login kopieren

Durch die Verwendung einer abgeleiteten Tabelle können Sie ohne Fehler auf die Originaltabelle in der Unterabfrage verweisen. Dieser Ansatz löscht erfolgreich doppelte Zeilen in der Mitarbeitertabelle und behält gleichzeitig die ursprüngliche Datenstruktur bei.

Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Zeilen aus einer SQL-Tabelle ohne den Fehler „Sie können die Zieltabelle nicht angeben ...'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage