Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die aktuellste Zeile für eine bestimmte ID in einer SQL-Tabelle ab?

Wie rufe ich die aktuellste Zeile für eine bestimmte ID in einer SQL-Tabelle ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-29 08:35:11874Durchsuche

How to Retrieve the Most Recent Row for a Given ID in a SQL Table?

Identifizieren der aktuellsten Zeile für eine bestimmte ID:

Die bereitgestellte Tabelle enthält mehrere Zeilen mit unterschiedlichen Anmeldezeitstempeln für verschiedene ID-Werte. Das Ziel besteht hier darin, die aktuellste Zeile basierend auf der Anmeldespalte für einen bestimmten ID-Wert (id=1) abzurufen.

Mit MAX() Aggregate und GROUP BY:

Ein Ansatz, dies zu erreichen, ist die Verwendung der Aggregatfunktion MAX() zusammen mit einer GROUP BY-Klausel. Die folgende Abfrage aggregiert den maximalen Anmeldezeitstempel für jede eindeutige ID:

SELECT
  id,
  MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id;

Diese Abfrage erzeugt eine Tabelle mit zwei Spalten: id und most_recent_signin. Die Spalte „most_recent_signin“ enthält den Zeitstempel der letzten Anmeldung für jede ID.

Abrufen des vollständigen Datensatzes:

Wenn das Ziel jedoch darin besteht, den vollständigen Datensatz abzurufen (einschließlich aller Spalten) für die aktuellste Zeile mit>

SELECT
  tbl.id,
  signin,
  signout
FROM tbl
INNER JOIN (
  SELECT id, MAX(signin) AS maxsign
  FROM tbl
  GROUP BY id
) ms ON tbl.id = ms.id AND signin = maxsign
WHERE tbl.id = 1;

Diese Abfrage führt einen INNER JOIN zwischen der TBL-Tabelle und einer Unterabfrage durch (ms), der den maximalen Anmeldezeitstempel für jede ID auswählt. Anschließend werden die Ergebnisse so gefiltert, dass nur die Zeile mit> enthalten ist

Das obige ist der detaillierte Inhalt vonWie rufe ich die aktuellste Zeile für eine bestimmte ID in einer SQL-Tabelle ab?. 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