【问题标题】:MySQL: Count() Subquery returns nothingMySQL:Count() 子查询不返回任何内容
【发布时间】:2016-05-09 08:54:56
【问题描述】:

我想计算表中国家/地区的所有用户 ID 和所有条目。但是当我执行查询时,它不会显示任何结果。

SELECT (
  SELECT
    COUNT(userId)
  FROM
    tbl_user
)
AS
  countUser,
(
  SELECT
    country
  FROM
    tbl_user
)
AS
  country

感谢每一个帮助和评论!

【问题讨论】:

  • 您的预期输出究竟是什么?每个国家/地区的userIds 数量?此外,您的 ... in the table country 没有任何意义,因为您的查询不使用此类表。
  • 我得到了用户 ID 的所有计数,但只有一个国家。问题是,我不止一个国家​​
  • 我明白了,但您希望显示这些数据吗?您是否需要每行的 userIds 总数?这没有多大意义。
  • 不,我不知道这是@Andrews B Anthony 解决方案的问题。我只需要一次(一行)用户ID的计数,然后作为第二个“表”国家
  • 如果您的意思是 SQL 连接,那是完全不同的事情。在我看来,您似乎还没有很好地掌握数据库查询可以做什么和不能做什么,因此您可能应该研究一下。对于这个特定问题,需要两个查询,然后必须按照您希望的方式将它们与您选择的编程语言结合起来(这超出了本问题的范围)。

标签: mysql select count


【解决方案1】:

使用下面的查询

select (select count(userId) from tbl_user) as userCount , 
userId, country from tbl_user

【讨论】:

  • 你是不是缺少 group by 子句?
  • 感谢您的回答!我也试过这个,但我只得到一个结果。例如,我有 12 个国家,但由于我的 count(),我只得到了一个国家。我想要一个真正只计算所有条目的表(userCount),例如:30 个用户 ID。另一个表应该显示来自表国家的所有条目
  • 更改了查询@This.Sven
【解决方案2】:

试试这个查询

select * from (
     select count(id) as countUser, name as country from tbl_user
) b 

【讨论】:

  • 感谢您的回答,但此解决方案也只输出一个国家/地区。
  • 你能解释一下你的架构吗,这样有助于理解你想要输出的内容
猜你喜欢
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多