0

データベースにテーブルsaved_offersがあります。私がやりたいのは、ユーザー名に一致するすべての全体を見つけ、それらの結果の中で、最も高いdateフィールドを持つものを見つけることです。

より簡単な例を次に示します。テーブルがあるとしますbaseball_players。ヤンキースで打率が最も高い選手を探し、descriptionフィールドを更新して「打率が最も高い」と言いたい。

私は決してSQLの第一人者ではないので、これが簡単すぎる場合はお詫び申し上げます。

updateステートメントでネストされた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)

最大日付が複数のレコードに表示されている場合、そのうちの1つだけが更新されます。上位の値の間のタイを壊したいが、どちらが選択されているかを気にしない場合に便利です。

于 2012-10-15T22:49:07.863 に答える