2016-09-07 18 views
1

私は2つのテーブルを持っています。質問と他は答えはです。内部結合を持つ2つのテーブルを更新する

Questionテーブルは今、私は答えはどこdoctor_id質問に属して更新したい

answer_id, question_id, comment, rating, doctor_id 

などのフィールドを持っている

question_id, question, type, answer_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の使用:内部結合使用して値を持つUpdateフィールド](http://stackoverflow.com/questions/14006856/using-mysql-update -field-with-values-with-inner-join) – jpw

+1

また、https://stackoverflow.com/questions/8057565/mysql-update-statement-inner-join-tables?noredirect=1&lq=1これはより良いデュープターゲット。 – jpw

答えて

2

MySQLのUPDATEについてJOIN構文とされます異なる場合、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

@Arulkumarとまったく同じです。以前の投稿はhttp://stackoverflow.com/questions/8057565/mysql-update-statement-inner-join-tables – Nebi

+0

です。このすべての質問はdoctor_idのために更新されています。8.どのようにして1つの質問を更新できますか? @アルキュマール – 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質問qの近くで使用されるようにしてください。 INNER JOIN答えa q.answer_id = a.answer_id WHERE a.doctor '2行目@ AT-2016 – Sid

+0

今すぐチェックしてください。それは修正されました。 –

+0

これによって、すべての質問がdoctor_idのために更新されています。8.どのようにして1つの質問を更新できますか? @ AT-2016 – Sid

関連する問題