【问题标题】:MySQL error updating a table using joinMySQL 使用连接更新表时出错
【发布时间】:2013-09-28 23:58:44
【问题描述】:

我正在尝试更新 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%。价格包含在 product 表中。

根据我在文档中看到的内容,我可以在更新语句中使用 join,过去我也做过类似的查询。

这是一个生产网站,目前有大约 40,000 种产品。如果需要,我可以做一个 php 脚本来循环遍历产品并一个一个地做,但似乎我应该可以直接从 mysql 做。

【问题讨论】:

    标签: mysql


    【解决方案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)
    

    【讨论】:

    • 工作就像一个魅力,我知道我离得不远了。现在完全有道理,但我盯着它看了很长时间,试图找出我哪里出错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多