Gibt alle Datensätze mit Dups zurück:
SELECT theTable.*
FROM theTable
INNER JOIN (
SELECT link, size
FROM theTable
GROUP BY link, size
HAVING count(ID) > 1
) dups ON theTable.link = dups.link AND theTable.size = dups.size
Ich mag die Unterabfrage b/c Ich kann Dinge tun wie alle außer der ersten oder letzten auswählen. (sehr einfach, sich dann in eine Löschabfrage zu verwandeln).
Beispiel:Wählen Sie alle doppelten Datensätze AUSSER demjenigen mit der maximalen ID:
SELECT theTable.*
FROM theTable
INNER JOIN (
SELECT link, size, max(ID) as maxID
FROM theTable
GROUP BY link, size
HAVING count(ID) > 1
) dups ON theTable.link = dups.link
AND theTable.size = dups.size
AND theTable.ID <> dups.maxID