Alle doppelten Einträge anzeigen

LightBear

Grünschnabel
Hi!

Ich würde gern in meiner MySQL-Datenbank alle doppelten Einträge auslesen.

Mir ist klar, das ich dies mit Distinct oder einem einfachen Group By erledigen kann, allerdings bekomme ich dann den doppelten Datensatz nur 1x ausgegeben - auch wenn dieser 100x in der Datenbank vorhanden ist.

Wie bekomme ich es hin, dass ich bei dem Select eben 100x den doppelten Datensatz zurückbekomme?
 
SQL:
SELECT
	source.*
FROM
	mytable AS source,
	(
		SELECT		field_1, field_2	-- alle Group-Felder
		FROM		mytable
		GROUP BY	field_1, field_2	-- alle Group-Felder
		HAVING		COUNT(*) > 1	-- nur jene auswählen die mehr als ein Datensatz haben
	) AS filter
WHERE
	filter.field_1 = source.field_1	-- alle Group-Felder verknüpfen
	AND filter.field_2 = source.field_2
 
Zuletzt bearbeitet von einem Moderator:
danke danke danke!

in jedem anderen code beispiel was ich gefunden hatte, kam "IN (...)" drin vor und das war aus performance gründen einfach absolut untragbar ...

deine methode ist bei mir auch mit sehr vielen datensätzen noch ziemlich flott!
 
Du kannst mit IN() über den WHERE-Part gehen. Du kannst aber auch ein INNER JOIN machen. Das was ich habe, entspricht einem INNER JOIN einfach mit den Argumenten im WHERE-Teil. ggf. ist ein INNER JOIN noch schneller, müsstest du testen
 

Neue Beiträge

Zurück