2016-04-17 6 views

Antwort

0

versuchen Sie diese. Ersetzen Sie die Vorkommen Table1 durch Ihren tatsächlichen Tabellennamen.

DELETE FROM Table1 WHERE ID IN 
(SELECT * FROM 
    (SELECT T2.Id 
    FROM Table1 T1 
    INNER JOIN Table1 T2 
    ON T1.Cod1 = T2.Cod1 AND T1.Model = T2.Model 
    WHERE T2.ID > T1.ID 
    )T 
); 

sqlfiddle

In der innersten Abfrage wird T1 T2 Aufzeichnungen finden passende wenn Cod1 und Modellspiel und T2.Id wird die größere ID sein. Es gibt also die IDs der zu löschenden Zeilen zurück. Aber Mysql erlaubt Ihnen nicht, von einer Abfrage zu löschen, die von der gleichen Tabelle ist, also müssen wir dieses in eine andere SELECT-Anweisung verpacken, um Mysql zu tricksen, Sie es zu lassen. Und das ist es.

+0

Ausgezeichnete Idee und Beispiel, funktioniert perfekt. Wirklich Danke. – Peter013