You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL更新关联指定分类的商品表mpn字段语句求助

正确的UPDATE语句解决方案

嘿,我看你这两条SQL没生效的核心问题出在关联条件写错了!咱们先理清楚两张表的关联逻辑:oclh_product(商品表)和oclh_product_to_category(商品分类关联表)是通过共同的product_id字段来关联的,而不是用category_id去关联product_id,这就是你语句失效的关键原因。

正确的JOIN写法(推荐)

这是最直观的多表更新写法,通过product_id关联两张表,再过滤目标分类ID:

UPDATE `oclh_product`
INNER JOIN `oclh_product_to_category` 
  ON oclh_product.product_id = oclh_product_to_category.product_id
SET oclh_product.mpn = '99999'
WHERE oclh_product_to_category.category_id = 26;

子查询写法(备选)

如果你更习惯用子查询的方式,也可以先从关联表中筛选出目标分类对应的商品ID,再更新商品表:

UPDATE `oclh_product`
SET mpn = '99999'
WHERE product_id IN (
  SELECT product_id 
  FROM `oclh_product_to_category` 
  WHERE category_id = 26
);

你原来语句的错误点

  • 第一条语句的关联条件写成了oclh_product_to_category.category_id = oclh_product.product_id,这相当于把分类ID和商品ID强行关联,逻辑完全错误,自然找不到匹配的记录;
  • 第二条语句的JOIN条件直接写了ON oclh_product_to_category.category_id = '26',这根本不是两张表的关联规则,相当于没有把商品表和关联表正确绑定,所以也无法定位到要更新的商品。

内容的提问来源于stack exchange,提问作者Ivan Dimov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:32:32