我想通过几个 INNER JOINS 更新表 INVENTAR
中的列。
我有以下内容:
包含列 PRODUCT_ID
、CATEGORY
的表 INVENTAR
包含列 PRODUCT_ID
、CATEGORY_ID
的表 PRODUCT_TO_CATEGORY
包含列 CATEGORY_ID
、NAME
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/