2012-12-22 76 views
2

我有一個主表和一個索引表。兩個表共享一個名爲「L_Status」的共同主要字段。我想根據名爲「status」的索引表中的參考將主表中的數據從「L_Status」值(整數)更新爲「L_StatusLV」(可讀的文本值)。下面是我進入phpMyAdmin的代碼來實現:使用MySQL:使用Inner Join更新字段的值

UPDATE markers.L_Status 
FROM markers 
INNER JOIN STATUS ON markers.L_Status = status.L_Status 
WHERE markers.L_Status = status.L_StatusLV 

PHPMYADMIN返回以下錯誤:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM markers INNER JOIN STATUS ON markers.L_Status = status.L_Status WHERE ma' at line 2

任何意見,對這裏的錯誤語法時才?

+0

它應該在'狀態'表中獲得主鍵(L_Status)的文本值對。 – AME

回答

7

MySQL的UPDATEJOIN語法從SQL Server的不同(它看起來像你有什麼):

UPDATE 
    /* First join the tables */ 
    markers 
    INNER JOIN status ON markers.L_Status = status.L_Status 
/* Then specify the new value in the SET clause */ 
SET markers.L_Status = status.L_StatusLV 

然而,正如您上面提到的電流值均爲整數。如果列markers.L_StatusINT列而不是CHAR/VARCHAR,因爲我認爲這個可讀的列是不可用的。

請訪問MySQL's UPDATE syntax reference瞭解完整的語法細節。特別是,該table_references