SQL: Doppelte Datensätze löschen

Aus DBWiki
Wechseln zu: Navigation, Suche

Zurück zur Übersicht



Bei Dubletten muss natürlich vorher geklärt sein, was exakt einen doppelten Datensatz bestimmt. Außerdem ist ein Feld zur Unterscheidung der einzelnen Datensätze nötig. Im Idealfall liegt ein Primärschlüssel vor. Ansonsten kann ein Autowertfeld der Tabelle temporär hinzugefügt werden.

Liegt als Ausgangslage z. B. folgende Tabelle doublette vor,

id txt
1 A
2 A
3 A
4 B
5 B
6 C

so kann diese Abfrage zur Lösung herangezogen werden:

DELETE
FROM   doublette AS d
WHERE  id NOT IN( SELECT min( id )
                  FROM   doublette
                  WHERE  txt = d.txt)

Nach Ausführung der Abfrage enthält die Tabelle dann noch folgende Daten:

id txt
1 A
4 B
6 C



Zurück zur Übersicht