2014-03-04 59 views
0

我想从两个INNER JOINS更新表INVENTAR中的一列。 我有以下几点:
INVENTAR与列PRODUCT_IDCATEGORY
PRODUCT_TO_CATEGORY与列PRODUCT_IDCATEGORY_ID
CATEGORY_DESCRIPTION与列CATEGORY_IDNAME
来自两个INNER JOIN的更新

我想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 
+1

您有问题吗? – Alexander

+0

嗯,它没有工作..所以我希望有人会重新格式化代码.. – Schtrudahl

+0

我得到这个错误:“#1064 - 你的SQL语法有错误;检查对应于你的MySQL服务器版本的手册在第3行“FROM inventar INNER JOIN product_to_category ON product_t”附近使用正确的语法“ – Schtrudahl

回答

3

正确的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的。

+0

感谢队友,工作! – Schtrudahl