我正在尝试根据
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
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)中的数学记录。
//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/>";