【问题标题】:UPDATE with subquery returning EMPTY/NULL MYSQL带有返回 EMPTY/NULL MYSQL 的子查询的 UPDATE
【发布时间】:2020-05-25 23:08:39
【问题描述】:

我有这个数据库:

  • 表 1 产品:id、name、total_sales

  • 表 2 Products_sales:id_product、id_user、价格

我想使用此查询更新“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

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

也许使用后备值?

【问题讨论】:

    标签: php mysql database null subquery


    【解决方案1】:

    作为后备,您可以在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;
    

    【讨论】:

    • @BeaLovelace 你能重试吗 - 我加入了子查询
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多