2010-04-23 53 views
1

我知道下面的MySQL的代碼是不正確的一些能幫助我解決這個問題的代碼使用兩個表我想抓住從learned_skillsidskill_idusers_skillsAND skill_id = idMySQL的更新問題

下面是MySQL數據庫碼。

SELECT learned_skills.*, users_skills.* 
UPDATE learned_skills 
SET skill = '$skill', experience = '$experience', years = '$years' 
WHERE user_id = '$user_id' 
AND skill_id = id 

以下是錯誤我得到

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 'UPDATE learned_skills SET skill = 'some_skill', experience = '1 - 2 years' at line 2 
+0

它不正確?有錯誤嗎?它只是不做你想要的嗎?你是如何從調用應用程序中調用它的? – bdonlan 2010-04-23 04:34:34

回答

1

您可以通過使用JOIN語法執行UPDATE業務覆蓋多個,如下面的例子:

UPDATE learned_skills ls 
JOIN user_skills us ON (us.skill_id = ls.id) 
SET  skill = '$skill', 
     experience = '$experience', 
     years = '$years' 
WHERE us.user_id = '$user_id'; 
+0

+1解決後續問題。不過,如果最初的問題也得到了回答,那將是非常好的。 – 2017-05-02 11:08:01

0

看一看UPDATE Syntax,看看幫助的第一個用戶評論。

1

的問題是在第一行的select語句。刪除它,並單獨運行,看看是否有效。此外,按照Daniel Vassalo的建議,加入兩張表格。否則它不知道從哪裏得到一半的列