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