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

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

DDD
DDDOriginal
2024-12-29 09:01:11612Durchsuche

How to Retrieve the Most Recent Row for a Specific ID in a Database Table?

Neueste Zeile basierend auf der ID abrufen

In einer Datenbanktabelle, die mehrere Zeilen für jede ID enthält, besteht die Aufgabe darin, nur die aktuellsten abzurufen Aktuelle Zeile für eine angegebene ID. Betrachten Sie die folgende Tabelle:

+----+---------------------+---------+
| id | signin              | signout |
+----+---------------------+---------+
|  1 | 2011-12-12 09:27:24 | NULL    |
|  1 | 2011-12-13 09:27:31 | NULL    |
|  1 | 2011-12-14 09:27:34 | NULL    |
|  2 | 2011-12-14 09:28:21 | NULL    |
+----+---------------------+---------+

Um die aktuellste Zeile mit der ID = 1 basierend auf der „Signin“-Spalte zu erhalten, aggregieren Sie die „Signin“-Spalte mit der Funktion MAX() und gruppieren Sie nach ID:

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

Diese Abfrage gibt den Zeitstempel der letzten „Anmeldung“ für jede ID zurück.

Um die vollständige Zeile zu extrahieren, die der letzten „Anmeldung“ zugeordnet ist, führen Sie Folgendes aus: ein INNER JOIN für eine Unterabfrage, die den MAX('signin') für jede ID zurückgibt:

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 ruft die ID, 'signin' und 'signout' für die Zeile mit der aktuellsten ' ab. Anmelden für ID = 1.

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