Mysql内部连接更新产品类别
我的MYSQL更新查询有问题。我有两个表:一个是命名产品,另一个是命名产品类别。例如: 表产品Mysql内部连接更新产品类别,mysql,Mysql,我的MYSQL更新查询有问题。我有两个表:一个是命名产品,另一个是命名产品类别。例如: 表产品 productid weight 1. 0.00 2. 0.00 3. 0.00 表产品类别 productid categoryid 1. 77 1. 78 2. 86 2. 87 3.
productid weight
1. 0.00
2. 0.00
3. 0.00
表产品类别
productid categoryid
1. 77
1. 78
2. 86
2. 87
3. 40
我的想法是,我想根据某个产品所属的产品类别更新该产品的重量。以下查询适用于数量较少的父类别。但是,对于子类别,查询似乎会跳过它们。是否需要检查产品标识和类别标识的所有组合,以设置类别标识值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;
添加一个
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)
两幅图像是相同的。请以纯文本而不是图像的形式发布数据。表中的子类别在哪里?您需要在您的
案例中添加ELSE
子句,否则所有其他产品的权重将设置为NULL
。感谢您花时间作出反应。我认为图像会因为布局而更清晰。所有类别都用数字表示,例如77可以是主类别,78可以是子类别。使用代码格式可以整齐地显示文本表。无论如何,查询如何知道77
是一个类别而78
是一个子类别?这正是我要找的!非常感谢你。