MySQL错误使用join更新表

时间:2013-09-28 23:58:45

标签: mysql

我正在尝试更新mysql数据库中的表,并且出现语法错误。如果重要的话,这是一张MyISAM表。

这是sql

UPDATE product SET price=(price*1.0909)
JOIN product_to_category ON product.product_id = product_to_category.product_id
WHERE category_id =6
OR category_id =1
OR category_id =2

我的目标是从3个特定类别(* product_to_category *表中的信息)中获取产品列表,并将价格提高约10%。价格包含在产品表中。

从我在文档中看到的,我可以在update语句中使用join,并且我在过去也做过类似的查询。

这是一个生产网站,目前有大约40,000种产品。如果需要,我可以做一个php脚本,它将遍历产品并逐个进行,但似乎我应该可以直接从mysql中完成。

1 个答案:

答案 0 :(得分:1)

你的陈述有点搞砸了。 SET跟在JOIN条款的UPDATE之后。

UPDATE product 
       JOIN product_to_category 
           ON product.product_id = product_to_category.product_id
SET    price = price * 1.0909
WHERE  category_id IN (1,2,6)