0

我的数据库中有一个表saved_offers。我想要做的是找到与用户名匹配的所有整体,并在这些结果中找到具有最高date字段的那个。

这是一个更简单的例子:假设我们有一个 table baseball_players。我想找到为洋基队效力的击球率最高的球员,并将他的description字段更新为“拥有最高的击球率”。

无论如何,我都不是 SQL 专家,所以如果这过于简单,我深表歉意。

我已经在更新语句中尝试了几乎所有嵌套 SELECT 和 ORDERBY 的组合,但到目前为止我无法找到有效的命令。

4

1 回答 1

1
update t a set x = 1 where
a.user = 1 and a.id =
(select top 1 b.id from t b where b.user = a.user and b.date =
(select max(c.date) from t c where c.user = b.user) order by b.id)

如果最大日期出现在多条记录中,则只会更新其中一条。当您想要打破最高值之间的平局并且不在乎选择哪个时很有用。

于 2012-10-15T22:49:07.863 回答