mysql - 从两个相关表获取现有库存并将结果连接到另一个表

标签 mysql stocks

我对所述标题有疑问。我想从这两个表中获取stocks_on_hand,即:

stocks_added
product_id  quantity_added
ANK001      50

stocks_released
product_id  quantity_released
ANK001      20

获得stocks_on_hand(两个表的结果)后,我想将其加入到产品表中:

product_id  product_name  price
ANK0001     ANKLET        200

最佳答案

使用连接和 sum():

select
    p.product_id, product_name, price,
    coalesce(sum(quantity_added), 0) - coalesce(sum(quantity_released), 0) as stocks_on_hand 
from products p
left join stocks_added a on a.product_id = p.product_id
left join stocks_released r on r.product_id = p.product_id
group by p.product_id, product_name, price

使用外连接(即左连接)意味着无论库存变动表中是否有行,您都会为每个产品获取一行。使用coalesce()意味着当stock表中没有行时使用默认值零。

关于mysql - 从两个相关表获取现有库存并将结果连接到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509326/

相关文章:

javascript - 当用户收到新消息时重新加载页面不起作用

ruby - 使用 Ruby 将 SEC Edgar XML 文件解析为 Nokogiri

mysql - 终端中的 MAMP Mysql

mysql - 查询显示故障率%

PHP CSV - MYSQL 超时

api - 谷歌股票API

dataset - 获取免费的历史股票市场/交易所数据(例如 S&P 500、NYSE)?

api - 如何获得特定日期的股票收盘价

大数据量的数据库设计

mysql - 组合框显示链接到先前组合框选择的记录