更新表均衡相同ID但不同国家/地区

时间:2016-06-17 14:04:24

标签: mysql sql

我在创建一个每隔几分钟就会在cronjob中运行的SQL语句时遇到问题。

我想要平衡ItemCode s(ID)相同但每个国家/地区不同的一列

表:

+----------+--------+---------+

| ItemCode | OnHand | country |

+----------+--------+---------+

| 08040    | 450    | de      |

+----------+--------+---------+

| 08040    | 000    | hu      |

+----------+--------+---------+

| 08040    | 145    | si      |

+----------+--------+---------+

我想OnHand where country = de并将其放入OnHand where country = hu。 (对于多个ItemCode - 有7000个)

UPDATE sap_items
    ON sap_items.ItemCode = sap_items.ItemCode AND
       sap_items.country='de'
SET sap_items.OnHand = sap_items.OnHand
WHERE sap_items.country='hu'";

我明白这是错的。但我不确定如何正确地把它。

1 个答案:

答案 0 :(得分:0)

您当前的语法已关闭。你可以结合自我加入UPDATE

UPDATE sap_items AS t1
INNER JOIN sap_items AS t2
    ON t1.ItemCode = t2.ItemCode
SET t1.OnHand = t2.OnHand
WHERE t1.country = 'hu' AND t2.country = 'de'