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

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

Barbara Streisand
Barbara StreisandOriginal
2025-01-01 07:45:11791Durchsuche

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

Abrufen der neuesten Zeile für eine bestimmte ID

In einer Situation, in der eine Datenbanktabelle mehrere Zeilen für dieselbe ID enthält, kann dies der Fall sein Es kann notwendig sein, nur die aktuellste Version zu extrahieren. In diesem Artikel wird erläutert, wie Sie dies in SQL erreichen.

Am Beispiel der bereitgestellten 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    |
+----+---------------------+---------+

Aggregate MAX(signin) Grouped by ID

Um die letzte Anmeldezeit für jede ID zu erhalten, gruppieren Sie die Zeilen nach ID und aggregieren Sie mit MAX(signin). Dadurch wird eine Liste der IDs mit den entsprechenden letzten Anmeldezeiten bereitgestellt.

SQL-Abfrage:

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

INNER JOIN gegen eine Unterabfrage

Um die gesamte aktuellste Zeile für eine bestimmte ID (z. B. ID=1) abzurufen, verwenden Sie einen INNER JOIN gegen a Unterabfrage, die den MAX(Signin) pro ID berechnet. Filtern Sie dann die Ergebnisse nach der gewünschten ID.

SQL-Abfrage:

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

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