当前位置: 首页 > 面试题库 >

单查询中的MySQL多个计数

沈巴英
2023-03-14
问题内容

我正在尝试在单个查询中计算两列,但结果却为medcount和uploadcount吐出了相同的值。有什么建议?

SELECT * , COUNT($tbl_list.listname) AS listcount, 
                    COUNT($tbl_uploads.id) AS uploadcount 
        FROM $tbl_members 
        LEFT JOIN $tbl_list ON $tbl_members.username = $tbl_list.username 
        LEFT JOIN $tbl_uploads ON $tbl_members.username = $tbl_uploads.username 
        GROUP BY $tbl_members.username 
        ORDER BY $tbl_members.lastname, $tbl_members.firstname;

问题答案:

使用:

   SELECT tm.*, 
          x.listcount, 
          y.uploadcount 
     FROM $tbl_members tm 
LEFT JOIN (SELECT tl.username,
                  COUNT(tl.listname) AS listcount
             FROM $tbl_list tl
         GROUP BY tl.username) x ON x.username = tm.username
LEFT JOIN (SELECT tu.username,
                  COUNT(tu.id) AS uploadcount
             FROM $tbl_uploads tu
         GROUP BY tu.username) y ON y.username = tm.username
 GROUP BY tm.username 
 ORDER BY tm.lastname, tm.firstname


 类似资料:
  • 问题内容: 我目前有一个表,用于存储大量项目的统计数据,例如视图,下载,购买等。为了对每个项目进行一次操作计数,我可以使用以下查询: 这给了我所有的内容以及他们的看法。然后,我可以将其他变量的“视图”更改为“购买”或“下载”。但是,这意味着对数据库的三个单独的调用。 一口气拿下所有三个都可以吗? 问题答案: 将返回一个表, 其中每个item_id和operation一行一行 ,包含三列:item_

  • 问题内容: 所有查询都是独立工作的,但实际上很难将所有内容组合到一个结果中,因此我可以将其与mysql_fetch_array一起使用。 我试图创建视图以及临时表,但是每次它说表不存在或返回一个空的获取数组循环时……都有逻辑但语法混乱,我认为这是我第一次处理多个查询,我需要将所有查询合并在一起。期待获得支持。非常感谢。 问题答案: 多亏了php.net,我提出了一个解决方案:您必须使用它来运行多个

  • 问题内容: 我基本上只是试图更新表中的多个值。最好的方法是什么?这是当前代码: 我要包含的另一个更新是: 谢谢! 问题答案: 用逗号分隔添加多列: 但是,您没有在清理输入内容??这意味着任何随机的黑客都可能破坏您的数据库。看到这个问题:用PHP清理用户输入的最佳方法是什么? 另外,样式是数字还是字符串?我假设一个字符串,所以需要用引号引起来。

  • 问题内容: 我很难优化我的SQLAlchemy查询。我的SQL知识非常基础,我无法从SQLAlchemy文档中获得所需的知识。 假设以下非常基本的一对多关系: 我怎么能: 查询每个父母的元组? 经过相当长的搜索时间后,我发现了如何分别查询这些值: 我试图以不同的方式将它们组合在一起,但没有设法得到我想要的。 查询所有顽皮孩子超过80%的父母?编辑:顽皮可能为NULL。 我猜想此查询将基于上一个查询

  • 3.3 查询多个订单 3.3.1 描述 通过调用该接口为指定电话号码和指定时间的订单明细 3.3.2 请求地址 地址:https://api.bokecs.com/recharge/order/getOrders?mobile=18514428128&startDate=2018-04-24 12:12:13&endDate=2018-04-25 12:12:13&sortOrder=desc 3

  • 我需要根据一个子查询的结果更新一个表,该子查询带来了1个以上的值,但在下面的查询中,我得到错误返回“subquery returns mouth 1 row”。我想知道是否有可能做一个“循环”,以更新值与我下面的子查询中呈现的每个结果。 完成查询 返回2个或更多值的子查询。 结果 在理想的场景中,我的查询将执行第一个值,在第二个之后...第三个之后...而不重复前面的值。