我有一家电子商务商店,每周一次仓库将另外一张表放到价格改变的产品中。如何用另一个表中所选产品的新价格更新第一个表中的价格?如果不可能仅使用mysql,请随意使用一些php。
我尝试了此命令,但是当SELECT未找到匹配项时,它将原始价格更改为0,而不是保持不变。
UPDATE product_catalogue pc
SET pc.price = (SELECT new_price
FROM product_catalogue_updated pcu
WHERE pc.product_id = pcu.product_id)
最佳答案
这是一种可能的解决方案:
UPDATE product_catalogue pc
SET pc.price = (
SELECT new_price
FROM product_catalogue_updated pcu
WHERE pc.product_id = pcu.product_id
)
WHERE pc.product_id IN (
SELECT pcu.product_id FROM product_catalogue_updated pcu
)
这可能也起作用:
这不起作用(但会很好):
UPDATE product_catalogue pc
SET pc.price = (
SELECT new_price
FROM product_catalogue_updated pcu
WHERE pc.product_id = pcu.product_id
) AS pprice
WHERE pprice IS NOT NULL