php - 列的总和在连接表 PHP 中不起作用
问题描述
我正在尝试从and计算req_qty
and 。我正在尝试获取连接的 3 个表数据,. 问题来了,如果不保存将无法正常工作。我被这个留在了桌子上in_qty
table1
table2
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%20no% 20 场比赛。
但是为了快速解释这个查询,我们将从 table3 中选择所有数据,左连接将从左表(此处为 table3)中查找所有记录,并从右表(此处为 table2 和表 1)中查找数学记录。
推荐阅读
- php - 从数组 PHP 中获取值 - 非法偏移
- python - 屏蔽像素值列表中存在被屏蔽像素的图像
- c++ - 如何将 find_if 与链表等非容器一起使用?
- ios - 使用 OneSignal 在 iOS 中接收后台通知
- laravel-5.5 - Laravel 社交名流无权访问服务器上的此链接
- linux - 在 Ubuntu 18.04 上,我无法使用 IP 地址从浏览器访问 Tomcat
- python - 为什么 tensorflow 不使用 pip 安装?
- makefile - 有没有办法重建链接到静态库的二进制文件
- powerbi - 重复列仅具有不同的值,其他将变为 0
- c# - 使用 WebClient.UploadValues 发送 JSON 时出现错误 404