2013-02-07 67 views
1

我正在使用MySQL工作臺嘗試從數據庫(TNR)中的現有表中將值添加到現有表(OS)中的新列(osTNR)。我從堆棧溢出的另一個響應採取了下面的語法,但它仍然不起作用。MySQL更新查詢中的「FROM」錯誤

UPDATE OS 
SET OS.osTNR = TNRs.TNR 
FROM OS INNER JOIN TNRs 
ON OS.osTerm = TNRs.thesaurusTerm; 

在我運行它之前,它突出顯示它在這個查詢中不期望「FROM」。當我運行它時,得到:

錯誤代碼:1064.您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的 'FROM OS INNER JOIN TNRS ON OS.osTerm = TNRs.thesaurusTerm' 第3" 行

回答

2

嘗試此查詢正確的語法手冊 -

UPDATE OS 
INNER JOIN TNRs 
    ON OS.osTerm = TNRs.thesaurusTerm 
SET 
    OS.osTNR = TNRs.TNR; 
2

嘗試:

UPDATE OS 
INNER JOIN TNRs ON OS.osTerm = TNRs.thesaurusTerm 
SET OS.osTNR = TNRs.TNR; 
+0

謝謝! - 我知道這將是直截了當的事情 – user2051315

0

試試這個,

UPDATE OS, TNRs 
SET OS.osTNR = TNRs.TNR 
WHERE OS.osTerm = TNRs.thesaurusTerm; 

它肯定會工作。這裏OSTNRs是表名。