mysql - 使用 INNER JOIN 的 SQL 更新

标签 mysql sql inner-join

我正在尝试使用这个查询

UPDATE products  
SET products.product_price = '87.00000'
FROM products
INNER JOIN product_category
ON products.product_id = product_category.product_id 
WHERE product_category.category_id = '64'

但是我收到此错误:#1064 - 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在第 3 行的“FROM 表产品 INNER JOIN 表产品_类别 ON prod”附近使用的正确语法

我没有看到任何语法错误。我已经从这个论坛上的示例中提出了这个问题。

最佳答案

删除 FROM products 行。 并把 SET ... 行就在 WHERE 子句之前。

要清楚:

UPDATE ...
JOIN ...
SET ...
WHERE ...

你也可以

UPDATE products p
SET p.product_price='87.00000'
WHERE EXISTS (SELECT NULL 
              FROM product_category pc
              WHERE p.product_id = pc.product_id
              AND pc.category_id = '64');

关于mysql - 使用 INNER JOIN 的 SQL 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491042/

相关文章:

php - 选择其中一列为 "val"的条目,然后是 "aaa",然后是 "ccc"

sql - MYSQL查询INNER JOIN两张表

join - Redshift - 带 OR 的高效 JOIN 子句

mysql - 内部联接以从行的总和中选择最大值

连接查询中的 Php 关联数组具有相同的键

php - PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 和准备语句中的多个删除语句

PHP 只从数据库返回一个值

java - 使用 JOINED 继承策略并设置 spring.jpa.properties.hibernate.jdbc.batch_size 时部分保存实体

sql - 使用 scala 在 spark sql 中编写 UDF

mysql - 比较 MySQL 中的两个表