2016-09-07 122 views
1

我有兩個表一個是問題和其他是答案用內部連接更新兩個表

問表具有領域

question_id, question, type, answer_id. 

回答表具有領域

answer_id, question_id, comment, rating, doctor_id 

現在我想更新的答案屬於發問,doctor_id。爲此,我試着寫這個查詢:

update question q 
set q.question = 'dmvvnnv',a.comment = 'covonfvk',a.rating = 5 
INNER JOIN answer a on q.answer_id = a.answer_id 
WHERE a.doctor_id = 8 

但它給我的語法錯誤:

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 'INNER JOIN answer a on q.answer_id = a.answer_id WHERE a.doctor_id = 8' at line 1

+0

的可能的複製[使用MySQL:使用內部連接的值更新場(http://stackoverflow.com/questions/14006856/using-mysql-update -field-with-values-using-inner-join) – jpw

+1

另外,https://stackoverflow.com/questions/8057565/mysql-update-statement-inner-join-tables?noredirect=1&lq=1這本來是一個更好的欺騙目標。 – jpw

回答

2

對於MySQL UPDATEJOIN語法不同,SET部分應該在JOIN

使用下面的查詢來更新條目:

UPDATE question q 
INNER JOIN answer a ON a.answer_id = q.answer_id 
SET q.question = 'dmvvnnv' 
    ,a.comment = 'covonfvk' 
    ,a.rating = 5 
WHERE a.doctor_id = 8 
+2

完全像@阿庫庫馬爾說。以前的帖子是這樣的http://stackoverflow.com/questions/8057565/mysql-update-statement-inner-join-tables – Nebi

+0

通過這個所有問題都得到了更新doctor_id 8.我們如何更新單個問題? @Arulkumar – Sid

+0

得到它,謝謝你.. @ Arulkumar – Sid

1

使用以下命令:

UPDATE question q INNER JOIN answer a on q.answer_id = a.answer_id 
SET q.question = 'dmvvnnv',a.comment = 'covonfvk',a.rating = 5 
WHERE a.doctor_id = 8 
+0

給出錯誤:#1064 - 您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以找到正確的語法,用於'FROM question q INNER JOIN answer a on q.answer_id = a.answer_id WHERE a.doctor'at line 2 @ AT-2016 – Sid

+0

檢查現在。它已被糾正。 –

+0

通過這個所有問題都得到了更新doctor_id 8.我們如何更新單個問題? @ AT-2016 – Sid