【问题标题】:Subquery returns more than one row - Mysql子查询返回多行 - Mysql
【发布时间】:2013-10-31 10:13:05
【问题描述】:

我正在尝试按升序获取每个城市的计数编号。但由于子查询返回多行,我得到了错误。

例如:一张表包含所有城市、州和密码。在另一个表中,我们将列出用户记录及其对应的城市。所以我试着用它的计数来计算每个城市的用户数。

EG:表 A

City State Pincode
ABC  TN    600001
ABD  TN    600001
ABE  KA    500001
ABF  KA    500002
ABG  KA    500003
CDE  KL    500004
CDF  KL    500004

表 B

Userid Answer
1      ABC
2      ABC
3      ABD
4      ABD
5      ABD
6      ABD
7      ABE
8      ABE
9      ABD
10     ABC

Sql 查询:

SELECT count(a.answer) from table b as a where a.answer=(select distinct(b.city) from table a as b);

所以我得到子查询返回不止一行。任何人都可以帮助我解决这个问题,并且对学习 SQL Query 很有帮助。

【问题讨论】:

  • 将您的 = 更改为 IN 以便您获得该子查询中的答案

标签: mysql sql subquery


【解决方案1】:

试试这个

select count(*) as cityCount, answer 
from B inner join A on B.answer = A.city group by answer

【讨论】:

  • 感谢 naveen goyal :)
【解决方案2】:

我想你不明白如何使用AS 关键字:它是用来制作别名的,这里不需要。

您正在寻找GROUP BY 声明

如果你想要所有城市信息+城市答案的数量,你可以这样做:

SELECT count(b.Answer) as count_answer, City, State, Pincode 
FROM table b join a on a.City=b.Answer 
GROUP BY City

有关更多信息,请参阅 mysql 文档;)

【讨论】:

    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 2014-02-15
    • 2018-03-08
    • 1970-01-01
    • 2017-05-29
    • 2012-06-22
    • 2012-09-17
    • 1970-01-01
    相关资源
    最近更新 更多