首页 > 解决方案 > 带有连接和条件的 MYSQL SUM 字段

问题描述

我有两个行数不同的表,我想要 SUM 字段(jumlah),但是应该来自第二个表的字段是空的,而不是用其他字段的数字填充

这个我的 sql 查询

SELECT a.nama_kebutuhan, SUM(a.jumlah) as jumlah1, SUM(b.jumlah) as jumlah2
FROM kebutuhan AS a 
INNER JOIN supply AS b ON b.no = a.no
WHERE a.no = '17717072'
GROUP BY a.`nama_kebutuhan`

表kebutuhan

id |   no   | nama_kebutuhan | jumlah
-------------------------------------
151|17717072| Pagar Panel MF | 10
152|17717072| U 30.30.120 T3 | 30

标签供应

id |   no   | nama_barang  | penyedia
-------------------------------------
1  |17717072|U 30.30.120 T3|  5

结果应该是

 nama_kebutuhan | jumlah1 | jumlah2
-------------------------------------
 Pagar Panel MF |   10    |  NULL
 U 30.30.120 T3 |   30    |   5

标签: mysql

解决方案


尝试使用LEFT JOIN.

SELECT k.nama_kebutuhan, SUM(k.jumlah) AS 'jumlah', SUM(s.penyedia) AS 'jumlah2' FROM kebutuhan k
LEFT JOIN supply s ON s.no=k.no
GROUP BY k.nama_kebutuhan;

推荐阅读