2016-09-07 3 views
1

У меня есть две таблицы: 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?noredirect11&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. Как мы можем обновить один вопрос? @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» 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

Смежные вопросы