gpt4 book ai didi

mysql - 为已知的其他几列选择具有 MAX(column) 的一行,无需子查询

转载 作者:行者123 更新时间:2023-12-04 05:14:46 28 4
gpt4 key购买 nike

我的表包含用户对不同项目的投票。它有以下字段:

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#
)

它有效,但对我来说看起来很愚蠢......应该有一种更优雅的方式来获得这张唱片。我尝试了这里建议的方法,但我还不能让它工作,所以我很感激你的帮助: How can I SELECT rows with MAX(Column value), DISTINCT by another column in SQL?

这个问题有第二部分: Count rows with DISTINCT(several columns) and MAX(another column)

最佳答案

您只需要结果中的一行,即带有 MAX(utc_time) 的一行。 .在 MySQL 中,有一个 LIMIT您可以通过 ORDER BY 申请的条款:

SELECT votes.*, items.name, items.price
FROM votes JOIN items ON items.id = votes.item_id
WHERE user_id = #user# AND item_id = #item#
ORDER BY votes.utc_time DESC
LIMIT 1 ;
(user_id, item_id, utc_time) 上的索引或 (item_id, user_id, utc_time)将有利于效率。

关于mysql - 为已知的其他几列选择具有 MAX(column) 的一行,无需子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14430260/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com