首页 > 解决方案 > SQL查询返回null Mysql

问题描述

这是一个sql查询:

SELECT SUM(a.quantity)-SUM(IF(ISNULL(b.quantity),0,b.quantity)) AS stock 
FROM wp_wpsp_inventory_items a, wp_wpsp_assigned_inventory b 
WHERE a.master_id='9' AND 
     (CASE WHEN ISNULL(b.quantity) 
           THEN '' ELSE a.master_id=b.master_id 
      END)

有两个表ab。表a存储所有流入,表b存储所有流出。在这里,我试图通过从流入中减去流出来计算存量。但是在某些情况下,表中没有条目的条目b是查询返回的这种情况NULL。我尝试使用IF()ISNULL()没有任何效果。请帮忙

标签: mysqlsql

解决方案


您应该使用左外连接。

SELECT SUM(a.quantity - coalesce(b.quantity, 0)) AS stock
FROM wp_wpsp_inventory_items a 
LEFT JOIN
wp_wpsp_assigned_inventory b
ON a.master_id = b.master_id
WHERE a.master_id = '9'

推荐阅读