Mysql SQL不带任何条件地使用多行扫描两个子查询

Mysql SQL不带任何条件地使用多行扫描两个子查询,mysql,sql,join,subquery,distinct,Mysql,Sql,Join,Subquery,Distinct,我每月组织一次在线竞赛,人们给许多用户的工作打分 我有一个投票表,每行包含投票人ID、分级用户ID和竞赛版本1、2等 如果有10个评级UESR,并且我对其中每一个都投强制票,那么我将在表格中出现10次,并且每个版本都会出现这一点 我想检索每个投票的用户,他们是按版本分组的JSON数组 此查询工作正常: 选择JSON_arrayagjson_object昵称,Tbl.Nickname,Id,Tbl.VoterId 从…起 选择DISTINCT Votes.VoterId、Users.昵称、Vote

我每月组织一次在线竞赛,人们给许多用户的工作打分

我有一个投票表,每行包含投票人ID、分级用户ID和竞赛版本1、2等

如果有10个评级UESR,并且我对其中每一个都投强制票,那么我将在表格中出现10次,并且每个版本都会出现这一点

我想检索每个投票的用户,他们是按版本分组的JSON数组

此查询工作正常:

选择JSON_arrayagjson_object昵称,Tbl.Nickname,Id,Tbl.VoterId 从…起 选择DISTINCT Votes.VoterId、Users.昵称、Votes.Edition 投票 在Users.Id=Votes.VoterId上加入用户 作为Tbl 按Tbl.版分组 现在,我想得到这个和每个用户谁得到评级。所以我尝试了这个查询:

选择 选择JSON_arrayagjson_object昵称,Tbl.Nickname,Id,Tbl.VoterId 从…起 选择DISTINCT Votes.VoterId、Users.昵称、Votes.Edition 投票 在Users.Id=Votes.VoterId上加入用户 作为Tbl 按Tbl.版分组 作为选民,, 选择JSON_arrayagjson_object昵称,Tbl.Nickname,Id,Tbl.RatedUserId 从…起 选择DISTINCT Votes.RatedUserId、Users.昵称、Votes.Edition 投票 在Users.Id=voces.RatedUserId上加入用户 作为Tbl 按Tbl.版分组 作为RatedUsers 我得到以下错误:

1242-子查询返回超过1行


我不明白为什么这是一个问题,因为每个子查询返回的行数与其他子查询的行数相同。

您将这些子查询放在选择列表中,并且在该位置它们只能返回一行。显示每个查询的几行结果,以及所需的组合结果。全部为格式化文本,没有图像。这里有一个粘贴栏:@jarlh要展开@jarlh的第一条评论,它是外部选择。。。这是造成问题的原因。即使这样做有效,我也不确定你想用它实现什么,因为它不会给你的整体逻辑增加任何东西?要使其工作,此select语句中的所有内容都需要解析为单个行/字符串,因为此外部语句不是从表中选择的。从概念上讲,您正在编写类似于SELECT'ABCDEF'的内容作为RatedUsers,这对于类似'ABCDEF'的字符串是有意义的,但是对于多行数据执行一个查询是没有意义的。加入用户两次。