檢索給定ID 的最新行
在資料庫表包含相同ID 的多行的情況下,它可能會只需要提取最新的一個。本文介紹如何在 SQL 中實現此目的。
以提供的表格為例:
+----+---------------------+---------+ | 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) 依ID 分組
要取得每個ID 的最近登入時間,請按ID 對行進行分組並使用MAX(signin) 進行聚合。這將提供 ID 清單及其相應的最新登入時間。
SQL 查詢:
SELECT id, MAX(signin) AS most_recent_signin FROM tbl GROUP BY id
針對子查詢的INNER JOIN
整個要檢索特定ID 的整個要檢索特定ID 的最新行(例如ID=1),對計算每個ID 的MAX(signin) 的子查詢使用INNER JOIN。然後,根據所需的 ID 過濾結果。
SQL 查詢:
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
以上是如何在 SQL 中檢索給定 ID 的最新行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!