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!