【问题标题】:Sum of column is not working in join table PHP列的总和在连接表 PHP 中不起作用
【发布时间】:2021-03-22 16:33:56
【问题描述】:

我正在尝试从table1table2 计算req_qtyin_qty。 我正在尝试获取连接的 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

【问题讨论】:

  • 您能分享一下查询,甚至可以创建一个小提琴吗?推荐阅读:Why should I provide a Minimal Reproducible Example for a very simple SQL query?tips for asking a good SQL question
  • 我尽力详细说明了这个问题。甚至我试着做桌子。当我分享小提琴没人打开的链接并将其标记为已关闭、重复时,我在 StackOverflow 上有经验,如何改进标签?并暂停。我不知道为什么人们讨厌我
  • 没有人讨厌你。我们没有理由对您提出任何个人意见。我们根据问题来判断。您的问题不会因为它有小提琴而被关闭,如果它 only 有小提琴(创建模式的代码需要包含在问题中),它可能会被关闭,如果它是不清楚或可能找到合适的副本。

标签: php mysql sum left-join union


【解决方案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%20no%20match 看到有关左连接如何工作的说明。

但是为了快速解释这个查询,我们将从 table3 中选择所有数据,left join 将从左表(此处为 table3)中查找所有记录,并从右表(此处为 table2 和表 1)中查找数学记录。

【讨论】:

  • 假设 table1tale2 为空我如何在您的代码中获取 table3 数据
  • 如果 table2 会填满,你的代码会做 sum 吗?
  • 查看我的总和编辑,我认为您需要阅读一些有关如何编写 sql 查询的文档
猜你喜欢
  • 2021-06-17
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 2014-06-17
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多