我的表包含用户对不同项目的投票。它具有以下字段:
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#
)
它有效,但对我来说看起来很愚蠢......应该有一种更优雅的方式来获得这张唱片。我尝试了这里建议的方法,但我还不能让它工作,所以我会很感激你的帮助:我如何选择具有 MAX(列值)的行,DISTINCT 由 SQL 中的另一列?
这个问题还有第二部分:Count rows with DISTINCT(several columns) and MAX(another column)