MySQL带关联条件SUM字段时第二表无匹配记录返回值异常问题
问题原因
你的现有查询存在3个核心错误:
- 用
INNER JOIN会过滤掉左表kebutuhan中没有和右表supply匹配的记录,导致Pagar Panel MF这条数据直接被排除 - 关联条件仅匹配了
no字段,没有匹配商品名称,同no下的所有左表记录都会和右表的同no记录关联,求和结果自然不符合预期 supply表不存在jumlah字段,你需要取的供应数值是penyedia字段,原查询字段引用错误
调整后的查询语句
SELECT a.nama_kebutuhan, SUM(a.jumlah) AS jumlah1, SUM(b.penyedia) AS jumlah2 FROM kebutuhan AS a LEFT JOIN supply AS b ON b.no = a.no AND a.nama_kebutuhan = b.nama_barang WHERE a.no = '17717072' GROUP BY a.`nama_kebutuhan`
补充说明
如果你希望无匹配时jumlah2返回0而非NULL,可以把SUM(b.penyedia) AS jumlah2替换为IFNULL(SUM(b.penyedia), 0) AS jumlah2即可。
内容的提问来源于stack exchange,提问作者kristianferdy3
相关产品推荐
相关产品推荐

