Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Holen Sie sich die neueste Zeile für die angegebene ID

Verwenden Sie das Aggregat MAX(signin) nach ID gruppiert. Dies listet die letzte signin auf für jede id .

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

Um den gesamten einzelnen Datensatz zu erhalten, führen Sie einen INNER JOIN durch gegen eine Unterabfrage, die nur den MAX(signin) zurückgibt pro ID.

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