gpt4 book ai didi

mysql - 如何选择得分最高的前 5 个用户名

转载 作者:行者123 更新时间:2023-11-30 23:58:55 25 4
gpt4 key购买 nike

我有两个表,usernamescore。两者都使用 user_id 连接。

我想选择得分最高的前 5 个用户名。我正在尝试以下查询,但它不起作用:

SELECT `user_name`  
FROM `username`
WHERE `user_id` = ( SELECT `u_id`
FROM `score`
ORDER BY `high_score` DESC
LIMIT 5 )

运行上述查询时出现此错误:#1242 - 子查询返回多于 1 行

最佳答案

在您的 WHERE 子句中,您试图断言一个值(左侧)与值列表(右侧)的一致性或相等性。

使用 IN 运算符来实现这一点,因为它会将左侧值与任何右侧值进行比较。

以下是您更正后的代码。

SELECT    `user_name`
FROM `username`
WHERE `user_id` IN(
SELECT `u_id`
FROM `score`
ORDER BY `high_score` DESC
LIMIT 5
);

作为一种使用连接的风格方式更清晰、更优雅,尤其是对于像这样的简单查询。

SELECT        `u`.`user_name`
FROM `username` AS `u`
INNER JOIN `score` AS `s`
ON `u`.`user_id` = `s`.`u_id`
ORDER BY `s`.`high_score` DESC
LIMIT 5;

关于mysql - 如何选择得分最高的前 5 个用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11285995/

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