我可以使用查询的行结果来运行子查询并获取返回的数据吗?

罗希特·哈兹拉(Rohit Hazra)

明确一点,我想避免在我的node.js程序中出现for循环

我当前的方法是一个group_concat()查询[工作正常]

    SELECT DISTINCT(c.main), GROUP_CONCAT(c.cId) AS cId_List FROM customers c LEFT JOIN boxes b ON b.boxId = c.boxId WHERE c.opId = ? GROUP BY c.conNo ORDER BY c.conNo ASC;
//response to json
    {
      "main": 2,
      "cId_List": "512,513"
    },{
      "main": 3,
      "cId_List": "514,515,516,517"
    },....

我需要运行的下一个查询是针对每个“ cId_List”的

for(every cId_List){
  qry = "SELECT SUM(amount) FROM payments p WHERE p.cId IN (cId_List);"
}

我该如何避免呢?

避免出现这种情况的原因是,对no.queue的查询没有限制。单个请求可以为10000+。

新增资讯

怎么了?

有两个表,即客户,付款通过执行组concat
,客户表中可以有多个行具有相同的“连接号[main]”

现在要为每个要运行SUM的cId_List将这些行的ID放入cId_List中()在付款表中查询,
因此我的结果应为

{
          "main": 2,
          "cId_List": "512,513", //multiple rows of customers table
          "amount_sum": 500 //data from payments table using above cId_List
        },{
          "main": 3,
          "cId_List": "514,515,516,517",
          "amount_sum": -200
        },....

sqlFiddle

询问:sqlfiddle解释
customers.conNo是多个客户(基本上是一个家庭,他们一起计费)的
客户的统一列。cId是主键和分隔符(当我们需要按人计费时)

payments.cId是customers.cId的外键,并根据cid输入付款

需要根据conNo生成报告

因此,要获取conNo的所有付款,我需要将所有适当的cId发送到付款表。

我希望这将消除疑虑。

编辑:

我正在检查此查询,这可能是答案,我想知道此查询格式是否是良好的性能明智的选择?

SELECT GROUP_CONCAT(DISTINCT(customers.cId)) AS cId_List, customers.*, payments.cId, SUM(amount) AS amt FROM `payments` left join customers on customers.cId = payments.cId GROUP BY `customers`.`conNo` ORDER BY `customers`.`conNo` ASC
草莓

因此,您似乎可以简单地将所有代码替换为以下代码:

 SELECT c.conno
      , SUM(p.amount) total
   FROM customers c
   LEFT
   JOIN payments p
     ON p.cid = c.cid
  GROUP
     BY c.conno

http://sqlfiddle.com/#!9/a65cf6/11

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用Azure Functions进行SQL查询并返回其结果吗?

来自分类Dev

我可以使用LIMIT和OFFSET迭代地获取SELECT查询的结果吗?

来自分类Dev

我可以使用LINQ查询来联接和过滤F#序列吗?

来自分类Dev

我可以使用LINQ查询来计算用属性中的where过滤的总行数吗?

来自分类Dev

我不知道/分组吗?有?子查询?我可以使用什么?

来自分类Dev

我们是否可以使用条件查询来查找记录的一个选择查询的结果

来自分类Dev

我可以使Python数据库选择查询仅返回值吗

来自分类Dev

可以使用自动查询来查找NULL值吗?

来自分类Dev

我可以使用node.js将mysql查询结果调用为html文件吗?

来自分类Dev

我可以使用 for 循环来获得相同的结果吗?

来自分类Dev

我可以使用isset()来控制mysql查询的执行

来自分类Dev

我可以使用isset()来控制mysql查询的执行

来自分类Dev

我们可以使用 Django 子查询进行算术运算吗?

来自分类Dev

我可以使用交叉表来获取数据透视表进行求和吗?

来自分类Dev

Join子查询中的计数和总和-我可以使用ActiveRecord建立此sql查询吗?

来自分类Dev

我可以使用Athena在RDS数据库中进行查询吗?

来自分类Dev

我可以使用全局模式查询数据库吗?

来自分类Dev

如何使用子查询的别名来获取运行总数?

来自分类Dev

我可以使用 AgensGraph 来迁移数据吗?

来自分类Dev

我可以使用更有效的查询吗

来自分类Dev

我可以使用GraphQL / Relay查询修改数据而无需获取

来自分类Dev

我可以使用子命令运行监视吗?

来自分类Dev

由于 HQL,是否可以使用“FROM”子句中的子查询来转换 SQL 查询

来自分类Dev

我们可以使用一个RowMapper对象而不是每次创建对象来获取结果吗?

来自分类Dev

我可以使用Cypher查询中的哪种技术仅基于每个节点的多个关系属性来获取路径

来自分类Dev

BigQuery 缓存查询结果过期后,我们可以使用相同的作业 ID 吗?

来自分类Dev

(Lucene / SOLR)我可以基于子查询分组对查询结果进行注释吗?

来自分类Dev

我可以在我的 SQL Server 查询中使用 IF 语句来对多个 SQL 版本使用查询吗?

来自分类Dev

我可以使用purrr执行dplyr查询并保存每个查询输出的结果

Related 相关文章

  1. 1

    我可以使用Azure Functions进行SQL查询并返回其结果吗?

  2. 2

    我可以使用LIMIT和OFFSET迭代地获取SELECT查询的结果吗?

  3. 3

    我可以使用LINQ查询来联接和过滤F#序列吗?

  4. 4

    我可以使用LINQ查询来计算用属性中的where过滤的总行数吗?

  5. 5

    我不知道/分组吗?有?子查询?我可以使用什么?

  6. 6

    我们是否可以使用条件查询来查找记录的一个选择查询的结果

  7. 7

    我可以使Python数据库选择查询仅返回值吗

  8. 8

    可以使用自动查询来查找NULL值吗?

  9. 9

    我可以使用node.js将mysql查询结果调用为html文件吗?

  10. 10

    我可以使用 for 循环来获得相同的结果吗?

  11. 11

    我可以使用isset()来控制mysql查询的执行

  12. 12

    我可以使用isset()来控制mysql查询的执行

  13. 13

    我们可以使用 Django 子查询进行算术运算吗?

  14. 14

    我可以使用交叉表来获取数据透视表进行求和吗?

  15. 15

    Join子查询中的计数和总和-我可以使用ActiveRecord建立此sql查询吗?

  16. 16

    我可以使用Athena在RDS数据库中进行查询吗?

  17. 17

    我可以使用全局模式查询数据库吗?

  18. 18

    如何使用子查询的别名来获取运行总数?

  19. 19

    我可以使用 AgensGraph 来迁移数据吗?

  20. 20

    我可以使用更有效的查询吗

  21. 21

    我可以使用GraphQL / Relay查询修改数据而无需获取

  22. 22

    我可以使用子命令运行监视吗?

  23. 23

    由于 HQL,是否可以使用“FROM”子句中的子查询来转换 SQL 查询

  24. 24

    我们可以使用一个RowMapper对象而不是每次创建对象来获取结果吗?

  25. 25

    我可以使用Cypher查询中的哪种技术仅基于每个节点的多个关系属性来获取路径

  26. 26

    BigQuery 缓存查询结果过期后,我们可以使用相同的作业 ID 吗?

  27. 27

    (Lucene / SOLR)我可以基于子查询分组对查询结果进行注释吗?

  28. 28

    我可以在我的 SQL Server 查询中使用 IF 语句来对多个 SQL 版本使用查询吗?

  29. 29

    我可以使用purrr执行dplyr查询并保存每个查询输出的结果

热门标签

归档