MySQL:获取最新记录

在下表中,如何仅根据登录列获取的 ,id=1而不是所有3条记录?

+----+---------------------+---------+

| 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 |

+----+---------------------+---------+

回答:

使用MAX(signin)按ID分组的汇总。这将列出signin每个最新的id

SELECT 

id,

MAX(signin) AS most_recent_signin

FROM tbl

GROUP BY id

要获取完整的单个记录,请INNER JOIN对仅返回MAX(signin)每个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

以上是 MySQL:获取最新记录 的全部内容, 来源链接: utcz.com/qa/433591.html

回到顶部