我有2张桌子。一个是"货物接收"表。另一个是" product_use_for"表
我需要sum(goods_receive.quantity)和sum(product_use_for.quentity) 并按产品名称显示。
其实我是php的新手。我对此问题感到困惑。如果有人帮助我,我会很高兴。请。
请参阅此图片>>
答案 0 :(得分:0)
您需要使用LEFT JOIN
,这样即使product_use_for
表中没有匹配项,您也会在结果中获得行。并且您需要在子查询中执行其中一个和,否则您将乘以另一个表中的行数。
SELECT gr.p_name AS product_name, SUM(gr.quantity) AS stock_quantity, IFNULL(puf.quantity, 0) AS use_quantity
FROM goods_receive AS gr
LEFT JOIN (SELECT p_name, SUM(quantity) AS quantity
FROM product_use_for
GROUP BY p_name) AS puf
ON gr.p_name = puf.p_name
GROUP BY gr.p_name