2014-03-04 65 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