列的总和在连接表 PHP 中不起作用

问题描述 投票:0回答:2

我正在尝试根据

req_qty
in_qty
计算
table1
table2
。 我正在尝试获取连接的 3 个表数据
SUM(req_qty)
SUM(in_qty)
。如果
req.qty
不保存在
table2
中,问题就会出现,它将无法工作。我就这样加入了桌子
sku's ids

我在这里制作了一个非常简单的表格来计算列的总和。通常,列的总和乘以总行。 请不要关闭其他帖子的帖子和公会。为了明确我的疑问,我在这里制作了一张我可以理解的表格。请帮忙。

table1

ID  |  sku_1 | req_qty | trans_id
----------------------------------
1   |  123   | 150     | 12345
2   |  142   | 200     | 256314
3   |  123   | 100     | 896523

表2

ID  | sku_2  | in_qty  | trans_key
-----------------------------------
1   | 142    | 50      | 002563

表3

ID |  sku_code  |  sku_name
--------------------------
1  | 142        |  ABC
2  | 123        |  XYZ

预期产出

ID | sku | sku_name | reqQty | inQty 
------------------------------------
1  | 123 | XYZ      | 250    | 0        
2  | 142 | ABC      | 200    | 50
php mysql sum left-join union
2个回答
1
投票

table1、table2为空时编辑选择数据

SELECT table1.id, table3.sku_code as sku, table3.sku_name, 
       sum(table1.req_qty) as reqQty, sum(table2.in_qty) as inQty
  FROM table3
  LEFT JOIN table1 on table3.sku_code = table1.sku_1
  LEFT JOIN table2 on table3.sku_code = table2.sku_2
  GROUP BY table1.id, table3.sku_code, table3.sku_name

解释

您可以在此处查看左连接如何工作的说明https://www.w3schools.com/sql/sql_join_left.asp#:~:text=The%20LEFT%20JOIN%20keyword%20returns,if%20there%20is% 20没有%20匹配.

但是为了快速解释这个查询,我们将从表3中选择所有数据,左连接将查找左表(此处为表3)中的所有记录以及右表(此处为表2和表1)中的数学记录。


0
投票
//For usage in PHP I made a for loop for similar purpose
//to get the sum of each column in a join query 
 
  $result = "the SQL JOIN query";
      $reqQty = 0;
      $inQty = 0;
      $count = count($result);
      for ($i=0; $i < $count; $i++){
          $req_qty_row = $result[$i]['req_qty'];
          $reqQty += $req_qty_row;
          $in_qty_row = $result[$i]['in_qty'];
          $inQty += $in_qty_row ;
          } 
  echo $reqQty . "<br/>";
  echo $inQty . "<br/>";
  echo $count . "<br/>";
© www.soinside.com 2019 - 2024. All rights reserved.