gpt4 book ai didi

mysql - 在 MySQL 中连接 3 个表并添加总计列

转载 作者:行者123 更新时间:2023-11-29 06:50:32 25 4
gpt4 key购买 nike

我的 MySQL 数据库中有三个表

表 1(供应商)包含我的所有供应商

表 2(puchaseorders) 包含我的所有采购订单,公共(public)列为“供应商”

表 3 包含这些订单中的所有单独商品,公共(public)列为 purchase_order

在供应商表中,我有一个历史余额,我想将运行总计添加到其中。

这就是我现在所拥有的。它工作完美,但它只返回 purchaseorders 表中的供应商。

我想返回供应商表中的所有供应商。如果没有“running_total”,则不要对余额执行任何操作。

SELECT *, vendors.balance + vend.running_total AS total FROM vendors 
INNER JOIN
(SELECT vendor, SUM(orderhistory.qty_received *
orderhistory.estimated_price) AS running_total FROM orderhistory
INNER JOIN purchaseorders ON
orderhistory.purchase_order=purchaseorders.purchase_order
GROUP BY purchaseorders.vendor) AS vend ON vend.vendor=vendors.vendor;

最佳答案

尝试以下操作(LEFT JOINIFNULL)

SELECT *, vendors.balance + IFNULL(vend.running_total,0) AS total
FROM vendors
LEFT JOIN
(
SELECT vendor, SUM(orderhistory.qty_received * orderhistory.estimated_price) AS running_total
FROM orderhistory
INNER JOIN purchaseorders ON orderhistory.purchase_order=purchaseorders.purchase_order
GROUP BY purchaseorders.vendor
) AS vend
ON vend.vendor=vendors.vendor;

关于mysql - 在 MySQL 中连接 3 个表并添加总计列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47687771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com