繁体   English   中英

更新子查询返回 EMPTY/NULL MYSQL

[英]UPDATE with subquery returning EMPTY/NULL MYSQL

我有这个数据库:

  • 表 1 产品:id、name、total_sales

  • 表2 Products_sales:id_product、id_user、price

我想使用此查询更新列“total_sales”

UPDATE products p SET total_sales = (SELECT SUM(price) AS totalPrice
FROM `products_sales` WHERE id_product = p.id GROUP BY id_product)

但是,如果一种产品没有任何销售,我会收到此错误:

#1048 - Column 'total_sales' cannot be null

当产品没有销售时,如何避免此错误?

也许使用后备值?

作为后备,您可以在COALESCE中使用零

UPDATE
    products AS p
        INNER JOIN (
        SELECT id_product, COALESCE(SUM(price), 0) AS totalPrice
        FROM `products_sales`
        GROUP BY id_product
    ) AS pSub ON p.id = pSub.id_product
SET p.total_sales = pSub.totalPrice;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM