Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die aktuellste Zeile für eine bestimmte ID in einer SQL-Tabelle ab?
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!