mysql - SQL 查询返回 null Mysql

标签 mysql sql

这是一个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() 但没有任何效果。请帮忙

最佳答案

您应该使用左外连接。

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'

关于mysql - SQL 查询返回 null Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249733/

相关文章:

MYSQL数据库服务器优化: Queries very slow with many connections

mysql - 将 Distinct 子句与表达式一起使用

MySQL 查询不正确

sql - 按列分组 + COUNT(*),如何获得每个组合的平均计数?

MySQL 将行转为动态数量的列

php - WHERE not 怎么写

mysql - 检索插入数据库的最后记录值的最佳方法

php - 合并两个数组后出现 Unicode 错误

mysql - 使用 join 组合多个 mySQL 查询

sql - PostgreSQL 窗口函数 : row_number() over (partition col order by col2)