2013-04-02 79 views
0

我有一個Previous Question關於根據2個表匹配的字段將值設置爲yes或no。我想有查詢檢查generalsource.firstinventor,如果它匹配inventor.inventorfull插入「是」,否則插入「否」 結果是下面的代碼:基於2個匹配的字段返回是或否的值

UPDATE i 
SET LeadInventor = 
    CASE 
     WHEN fi.FirstInventorName IS NULL THEN 'No' 
     ELSE 'Yes' 
    END 
FROM Inventor i 
    LEFT JOIN FirstInventor fi 
    ON i.InventorFirst + ' ' + i.InventorLast = fi.FirstInventorName 

這飛馳的工作,直到我試圖投入到MySQL中,我無法弄清楚語法有什麼問題。我如何解決它?

Error Code: 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 Inventor i  LEFT JOIN FirstInventor fi  ON i.InventorFirst + ' ' + i.' at line 7 
+0

錯誤消息通常會給你一個提示。你的說法是什麼? –

+0

你會得到什麼錯誤? –

+0

錯誤代碼:1064.您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'FROM Inventor i LEFT JOIN FirstInventor fi ON i.InventorFirst +''+ i'附近使用正確的語法。第7行 –

回答

2

CONCAT字符串作爲

CONCAT(i.InventorFirst, ' ', i.InventorLast) 

UPDATE:而且,似乎是在你的更新語句的語法問題,它應該是如下

UPDATE 
    Inventor i 
    LEFT JOIN FirstInventor fi ON CONCAT(i.InventorFirst, ' ', i.InventorLast) = fi.FirstInventorName 
SET LeadInventor = 
    CASE 
     WHEN fi.FirstInventorName IS NULL THEN 'No' 
     ELSE 'Yes' 
    END 

更多信息:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat

+0

仍然在行 –

+0

上拋出錯誤@JohnnyB對不起,我不知道如何錯過了其餘的語法,請現在嘗試,我已經更新了回答 – Akash

+0

'錯誤代碼:1146.表'sharppatentdb.firstinventor'不存在'我的命名約定有些問題,但我不知道是什麼。一個表是generalsource另一個表是發明人 –

相關問題