首页 > 解决方案 > 如何使用 MySql 使用另一个表中的值更新两个表上的值

问题描述

我有 3 张桌子,T1、T2、T3。我需要使用 stock_status 中的值和 T3 中的值更新 T1 中的 stock_status 和 T2 中的限制,仅在 sku 匹配的地方。entity_id 也是 product_id 的对应对象。

这是一个更好理解的图像 图片

我被困在从 T1 的 stock_status 中从 T3 的 stock_status 移动值,因为我没有直接的公共字段。

对于有限的领域,我试过了。

UPDATE t2,t3 INNER JOIN t3 on t2.sku = t3.sku SET t2.limited = t3.limited

标签: mysqlsql-update

解决方案


您应该使用在 t2 和 t1 之间添加内部连接来更新 t1.stock_status

  UPDATE t2,t1 
  INNER JOIN t3 on t2.sku = t3.sku 
  INNER JOIN t1 on t1.product_id = t2.entity_id
  SET t2.limited = t3.limited, 
      t1.stock_status = t3.stock_status

推荐阅读