MySQL子查询返回多行

我正在执行此查询:

SELECT

voterfile_county.Name,

voterfile_precienct.PREC_ID,

voterfile_precienct.Name,

COUNT((SELECT voterfile_voter.ID

FROM voterfile_voter

JOIN voterfile_household

WHERE voterfile_voter.House_ID = voterfile_household.ID

AND voterfile_household.Precnum = voterfile_precienct.PREC_ID)) AS Voters

FROM voterfile_precienct JOIN voterfile_county

WHERE voterfile_precienct.County_ID = voterfile_County.ID;

我正在尝试使其返回如下内容:

County_Name   Prec_ID   Prec_Name   Voters(Count of # of voters in that precienct)

但是,我得到了错误:

#1242-子查询返回的行数超过1。

我尝试将COUNT语句放置在子查询中,但是收到无效的语法错误。

回答:

您可以使用简单的分组方式在没有子查询的情况下进行尝试:

SELECT voterfile_county.Name, 

voterfile_precienct.PREC_ID,

voterfile_precienct.Name,

count(voterfile_voter.ID)

FROM voterfile_county

JOIN voterfile_precienct

ON voterfile_precienct.County_ID = voterfile_County.ID

JOIN voterfile_household

ON voterfile_household.Precnum = voterfile_precienct.PREC_ID

JOIN voterfile_voter

ON voterfile_voter.House_ID = voterfile_household.ID

GROUP BY voterfile_county.Name,

voterfile_precienct.PREC_ID,

voterfile_precienct.Name

使用GROUP BY时,未分组的任何列都必须具有聚合子句(fe

SUM或COUNT。)因此,在这种情况下,您必须对县名称,precienct.id和precient.name进行分组。

以上是 MySQL子查询返回多行 的全部内容, 来源链接: utcz.com/qa/424965.html

回到顶部