私のテーブルには、さまざまなアイテムに対するユーザーの投票が含まれています。次のフィールドがあります。
id, user_id, item_id, vote, utc_time
#item#に対する#user#の最後の投票を取得する方法を理解していますが、サブクエリを使用しています。
SELECT votes.*, items.name, items.price
FROM votes JOIN items ON items.id = votes.item_id
WHERE user_id = #user# AND item_id = #item#
AND utc_time = (
SELECT MAX(utc_time) FROM votes
WHERE user_id = #user# AND item_id = #item#
)
それは機能しますが、私にはかなりばかげているように見えます...この1つのレコードを取得するためのよりエレガントな方法があるはずです。ここで提案されているアプローチを試しましたが、まだ機能させることができないので、助けていただければ幸いです。SQLの別の列でMAX(列値)、DISTINCTを使用して行を選択するにはどうすればよいですか。
この質問には2番目の部分があります。DISTINCT(いくつかの列)とMAX(別の列)で行をカウントします