[英]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.