Heim > Datenbank > MySQL-Tutorial > Warum tritt beim Entfernen von Duplikaten in MySQL der Fehler „DELETE FROM Employee WHERE (empid, empssn) NOT IN (...)' auf?

Warum tritt beim Entfernen von Duplikaten in MySQL der Fehler „DELETE FROM Employee WHERE (empid, empssn) NOT IN (...)' auf?

Linda Hamilton
Freigeben: 2024-11-01 16:24:31
Original
773 Leute haben es durchsucht

Why Does

Entfernen doppelter Zeilen in MySQL-Tabellen: Den Fehler beheben

Um doppelte Datensätze aus einer Tabelle mit dem Namen „employee“ zu entfernen, die die Felder „empid“, „empname“, und 'empssn', identifizieren Sie sie zunächst mit der Abfrage:

<code class="sql">SELECT COUNT(empssn), empssn FROM employee 
GROUP BY empssn 
HAVING COUNT(empssn) > 1</code>
Nach dem Login kopieren

Jedoch die nachfolgende Löschabfrage:

<code class="sql">DELETE FROM employee 
WHERE (empid, empssn) NOT IN (
    SELECT MIN(empid), empssn FROM employee 
    GROUP BY empssn
);</code>
Nach dem Login kopieren

stößt auf einen Fehler bei der Angabe der Zieltabelle „employee“ in der FROM-Klausel.

Lösung:

Zur Adresse Um diesen Fehler zu beheben, packen Sie die Unterabfrage in eine abgeleitete Tabelle ein:

<code class="sql">DELETE FROM employee 
WHERE (empid, empssn) NOT IN (
    SELECT empid, empssn FROM (
        SELECT MIN(empid) AS empid, empssn FROM employee 
        GROUP BY empssn
    ) X
);</code>
Nach dem Login kopieren

Diese Änderung ermöglicht es Ihnen, auf die zu verweisen Originaltabelle in der Unterabfrage und löschen Sie die doppelten Zeilen erfolgreich.

Das obige ist der detaillierte Inhalt vonWarum tritt beim Entfernen von Duplikaten in MySQL der Fehler „DELETE FROM Employee WHERE (empid, empssn) NOT IN (...)' auf?. 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