mysql - 从两个 INNER JOINS 更新

标签 mysql sql sql-update inner-join

我想通过几个 INNER JOINS 更新表 INVENTAR 中的列。 我有以下内容:
包含列 PRODUCT_IDCATEGORY 的表 INVENTAR
包含列 PRODUCT_IDCATEGORY_ID
的表 PRODUCT_TO_CATEGORY 包含列 CATEGORY_IDNAME

的表 CATEGORY_DESCRIPTION

我希望 NAME 列更新 CATEGORY 列。 这是我的代码:

UPDATE inventar
   SET inventar.category=category_description.name
  FROM inventar
       INNER JOIN product_to_category 
             ON product_to_category.product_id=inventar.product_id
       INNER JOIN category_description 
             ON category_description.category_id=product_to_category.category_id

最佳答案

正确的 MySQL 语法是:

UPDATE inventar i INNER JOIN
       product_to_category ptc
       ON ptc.product_id = i.product_id INNER JOIN
       category_description cd
       ON cd.category_id = ptc.category_id
   SET i.category = cd.name;

您的语法看起来更适合 SQL Server 或 Postgres。

关于mysql - 从两个 INNER JOINS 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22177606/

相关文章:

SQL服务器: update top(1) loop

MySQL 不会创建我的建模数据库

php - 多次插入后更新特定记录 - 可能使用last_insert_id()

php - mySQL 查询 - 显示最受欢迎的项目

sql - 将日期插入 db2

sql - 如何从hsql中的序列中获取接下来的10个值

mysql - SQL查询失败,42000 1064

mysql - 有没有一种快速的方法来更新 SQL 中的许多记录?

mysql - 显示数据从最高值排序

mysql - 错误的 MySQL 更新查询后恢复?