我对所述标题有疑问。我想从这两个表中获取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/