Colesce 和内连接
Colesce sum inner join
早上好,
我在群里看了很多关于这个问题的资料,但我真的不明白为什么我的代码不起作用。
如果我在总数中添加产品,一切都可以;如果我删除一些产品,总数仍然正确,但如果没有产品,总数不会变为 0 或 null,但它与上次计算保持相同。
我以为 Coalesce 解决了我的问题,但它仍然不起作用。
这是我的 phpmyadmin 代码:
UPDATE orders o
INNER JOIN
(
SELECT order_id, COALESCE(SUM(totale),0) 'sumu'
FROM OrdineProdotto
GROUP BY order_id
) i ON o.order_id = i.order_id
SET o.totale_ordine = i.sumu
WHERE o.order_id = $ordID
其中 $ordID 显然是订单号。
非常感谢您的帮助。
如果子查询不包含特定 order_id
的行,则 orders
中具有该 order_id
的行将不会因为连接而更新。
而是使用相关的子查询:
UPDATE orders o
SET o.totale_ordine = (
SELECT COALESCE(SUM(op.totale), 0)
FROM OrdineProdotto op
WHERE op.order_id = o.order_id
)
WHERE o.order_id = $ordID;
早上好, 我在群里看了很多关于这个问题的资料,但我真的不明白为什么我的代码不起作用。 如果我在总数中添加产品,一切都可以;如果我删除一些产品,总数仍然正确,但如果没有产品,总数不会变为 0 或 null,但它与上次计算保持相同。
我以为 Coalesce 解决了我的问题,但它仍然不起作用。
这是我的 phpmyadmin 代码:
UPDATE orders o
INNER JOIN
(
SELECT order_id, COALESCE(SUM(totale),0) 'sumu'
FROM OrdineProdotto
GROUP BY order_id
) i ON o.order_id = i.order_id
SET o.totale_ordine = i.sumu
WHERE o.order_id = $ordID
其中 $ordID 显然是订单号。
非常感谢您的帮助。
如果子查询不包含特定 order_id
的行,则 orders
中具有该 order_id
的行将不会因为连接而更新。
而是使用相关的子查询:
UPDATE orders o
SET o.totale_ordine = (
SELECT COALESCE(SUM(op.totale), 0)
FROM OrdineProdotto op
WHERE op.order_id = o.order_id
)
WHERE o.order_id = $ordID;