【发布时间】:2009-06-12 15:42:21
【问题描述】:
uid timestamp
1 1242420497
1 1243534661
1 1243534858
1 1243611312
1 1243611511
3 1244817764
3 1244819093
1 1244749446
我有这张表,我正在寻找具有最高时间戳的行。 我尝试使用
SELECT uid,max(timestamp) FROM `node_revisions` WHERE nid=51
但是返回了
uid timestamp
1 1244819093
如您所见,它的 uid 错误。我如何让它从正确的行中获取 uid?谢谢
【问题讨论】:
-
你的条件是搜索 nid...你是不是要把 uid 放在那里?
-
这不是 SQL MAX 问题。只需按时间戳 DESC 排序并选择第一个。请参阅下面的解决方案。
-
应该禁止使用没有 GROUP BY 子句的聚合函数 - 并且在 T-SQL 中。
-
@David:那么 OP 必须使用 MySQL 或 SQLite,这允许不明确地使用 GROUP BY。