Aktuelle eindeutige Datensätze auswählen
Ihre Abfrage zielt darauf ab, die drei neuesten Datensätze aus einer Tabelle abzurufen, in der die Werte in der Spalte „otheridentifier“ eindeutig sind . Der aktuelle Ansatz mit GROUP BY und LIMIT führt jedoch zu unerwarteten Ergebnissen.
Lassen Sie uns das Problem untersuchen. Die GROUP BY-Operation kombiniert Zeilen mit demselben anderen Bezeichner. Da die Sortierung nach der Gruppierung erfolgt, wird nicht unbedingt der aktuellste Datensatz jeder Gruppe ausgewählt.
Lösung mit Unterabfrage
Um dieses Problem zu beheben, kann eine Unterabfrage verwendet werden, um die zu identifizieren Neuester Datensatz für jeden einzelnen anderen Bezeichner. Diese Informationen werden dann in der Hauptabfrage verwendet, um die gewünschten Datensätze auszuwählen.
Die folgende Abfrage erreicht dies:
SELECT * FROM `table` WHERE `id` = ( SELECT `id` FROM `table` as `alt` WHERE `alt`.`otheridentifier` = `table`.`otheridentifier` ORDER BY `time` DESC LIMIT 1 ) ORDER BY `time` DESC LIMIT 3
Erklärung:
Mit diesem Ansatz werden die Die Abfrage gibt das erwartete Ergebnis zurück: IDs 5, 4 und 2, die die drei neuesten Datensätze mit unterschiedlichen anderen Identifikatorwerten darstellen.
Das obige ist der detaillierte Inhalt vonWie wähle ich die drei neuesten eindeutigen Datensätze aus einer Tabelle aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!