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
Freigeben: 2024-12-01 04:59:09
Original
722 Leute haben es durchsucht

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage