php - SQL 求和并从第二个查询中添加两列

标签 php mysql sql

我正在尝试将两位逻辑合并到一个 SQL 查询中以加快我的代码库的效率,我目前有两个这样的查询(伪代码):

// Looping each user in table
$statement = "SELECT id FROM users";

// I then loop that statement, combining data from sub-query
{
  // Get the "summing" data from table in reference to looped user
  $second_statement = "SELECT add_col_1,add_col_2FROM users WHERE ref = id"

  // Combine add_col_1, and add_col_2 together
  array_sum($second_statement)
}

我所追求的是第二条语句的总和,从第一个查询SELECT id FROM users 中获取 ID,然后在列名 下研究该表以获取对该表的引用ref 然后我可以将这些行中每一行的列加在一起。

我这样做并不是为了得到一条语句而不是两条语句,这是因为一旦应用程序扩展,必须以指数方式查询成千上万的用户是不好的。

我试图联合这两个循环的语句是:

SELECT
   id,
   (SUM(SELECT col_add_1+col_add_2 FROM users WHERE ref = a.id)) AS total
FROM users a

遇到执行错误。

最佳答案

差不多了,您只需要连接到自身以在一次调用中链接所有项目,然后按 id 对结果进行分组,以便总和适用于所有链接的项目。

SELECT
  a.id,
  SUM(b.col_add_1 + b.coll_add_2)
FROM
  users a
LEFT JOIN
  users b
ON
  a.id = b.ref
GROUP BY
  a.id

关于php - SQL 求和并从第二个查询中添加两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49973070/

相关文章:

php - 无法在 .htaccess 中为我的 php 网站编写重写规则

php - 如何找出是否在嵌套数组中

php - 动态评分表

php - 访问被拒绝使用 PHP 连接到 MySQL

php - 从 php 脚本发送到 mySQL 的双条目

mysql - 如何关联两个单独表中的数据

php - 如何在从mysql检索到的图像上加水印

php - require_once(PHPExcel/类/PHPExcel.php): failed to open stream

php - 一个语句中有多个之间

SQL编译