MYSQL;Обновить таблицу A на основе объединения из таблицы A и таблицы B - PullRequest
0 голосов
/ 15 декабря 2018

Справа, я скажу, что я верю, что это то, что я хочу:

Обновление нескольких строк с помощью оператора select .Ответ, кажется, для того, что я хочу сделать.

Мои таблицы следующие.tPatientsIDs содержит только два столбца: keyid и uid.

tEyeResults содержит столбец с именем Patientid и столбец с именем puid.Значения Patientid соответствуют столбцу uid из tPatientsIDs, и puid пуст, поскольку он был создан путем недавнего изменения таблицы.

Все, что я хочу сделать, - это установить значение puid в keyid в tPatientIDs, которое соответствует значениюстолбца Patientid.

Вот запрос, который я использую на основе ответа на SO:

UPDATE tEyeResults SET puid = tPatientIDs.keyid FROM tPatientIDs WHERE 
tPatientIDs.uid = tEyeResults.patientid; 

Несмотря на то, что структура кажется идентичной ответу, я получаю ошибку:

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 
tPatientIDs 
WHERE tPatientIDs.uid = tEyeResults.patientid' at line 1

1 Ответ

0 голосов
/ 15 декабря 2018

Используйте JOIN с вашим обновлением

UPDATE tEyeResults e 
JOIN tPatientIDs p ON p.keyId = e.patientId
SET e.puid = tPatientIDs.keyid 

Возможно, вам нужно условие where, чтобы обновить только одного пациента, но я не нашел ни одного в вашем вопросе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...