我的MYSQL更新查询出了问题。我有两个表:一个名为product的产品,另一个名为product_category。例如:
Tableproduct
productid weight
1. 0.00
2. 0.00
3. 0.00
Tableproduct_category
productid categoryid
1. 77
1. 78
2. 86
2. 87
3. 40
我的想法是,我想根据其所属的产品类别更新某个产品的重量。以下查询适用于父类别,它们的编号较小。但是对于子类别,查询似乎跳过它们。有没有检查product_id和category_id的所有组合来设置category_id值78和87的权重?提前谢谢!
到目前为止我的查询:
UPDATE product
INNER JOIN product_to_category
ON product.product_id=product_to_category.product_id
Set weight = case
when product_to_category.category_id = '78' then '99.00000000'
when product_to_category.category_id = '87' then '99.00000000'
end;
答案 0 :(得分:0)
添加WHERE
子句,将匹配限制在您关注的案例中。
UPDATE product AS p
INNER JOIN product_to_category AS pc ON p.product_id = pc.product_id
SET weight = case pc.category_id
when 78 then '99.00000000'
when 87 then '99.00000000'
end
WHERE pc.category_id IN (78, 87)