Identifizieren von Duplikaten in Spaltenwerten ohne DISTINCT
In einer Datenbank kann es notwendig sein, Zeilen zu identifizieren, in denen der Wert einer bestimmten Spalte wiederholt wird. Im Gegensatz zum Schlüsselwort DISTINCT, das nur eindeutige Werte abruft, erfordert die vorliegende Aufgabe die Auswahl aller Zeilen, in denen der Spaltenwert keine Unterscheidungskraft aufweist.
Ein Ansatz zur Lösung dieser Anforderung besteht darin, eine Unterabfrage innerhalb der WHERE-Klausel zu verwenden. Die folgende Abfrage demonstriert diese Technik:
SELECT [EmailAddress], [CustomerName] FROM [Customers] WHERE [EmailAddress] IN (SELECT [EmailAddress] FROM [Customers] GROUP BY [EmailAddress] HAVING COUNT(*) > 1)
Diese Abfrage ruft alle Zeilen aus der Tabelle „Kunden“ ab, in denen der Wert „EmailAddress“ in einer Gruppe mit mehr als einer Instanz vorhanden ist. Durch den Vergleich der „EmailAddress“-Werte in der äußeren Abfrage mit denen in der Unterabfrage werden eindeutige Werte effektiv herausgefiltert.
Für die bereitgestellten Beispieldaten würde die obige Abfrage das gewünschte Ergebnis liefern:
CustomerName | EmailAddress |
---|---|
Aaron | [email protected] |
Christy | [email protected] |
John | [email protected] |
Das obige ist der detaillierte Inhalt vonWie kann ich doppelte E-Mail-Adressen in einer Datenbanktabelle finden, ohne DISTINCT zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!