Heim >Datenbank >MySQL-Tutorial >Wie wähle ich die drei neuesten eindeutigen Datensätze aus einer Tabelle aus?

Wie wähle ich die drei neuesten eindeutigen Datensätze aus einer Tabelle aus?

Linda Hamilton
Linda HamiltonOriginal
2024-12-01 04:59:09814Durchsuche

How to Select the 3 Most Recent Distinct Records from a Table?

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:

  • Die Unterabfrage ruft die ID des neuesten Datensatzes für jeden eindeutigen anderen Bezeichner ab.
  • Die Hauptabfrage verwendet diese dann id, um die entsprechenden Datensätze aus der Originaltabelle abzurufen.
  • Die Datensätze sind nach absteigender Zeit geordnet, und die drei neuesten sind durch LIMIT 3 begrenzt.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn