我在使用时间戳处理项目时遇到问题。我已经建立了一个简单的数据库来说明问题:
id timestamp status
1 2014-01-14 14:14:29 old
2 2014-01-14 14:04:35 new
1 2014-01-14 14:15:19 new
我运行了以下查询:
SELECT MAX( TIMESTAMP ) AS TIMESTAMP, id,
STATUS FROM `proba`
GROUP BY id
结果是:
TIMESTAMP id STATUS
2014-01-14 14:15:19 1 old
2014-01-14 14:04:35 2 new
我得到了正确的时间戳,但错误的数据行(如果我添加多行,我将始终获得第一行)。
我使用phpMyAdmin - 2.11.4,如果它确实重要:)
我该怎么办?我需要最新的一行(在确切的问题上,我也需要一个id by group)。
谢谢!
答案 0 :(得分:1)
SELECT stamp, p1.id, p1.STATUS FROM `proba` p1
INNER JOIN (
SELECT MAX(timestamp) AS stamp FROM `proba` GROUP BY id
) p2 ON p1.timestamp = p2.stamp