Справа я скажу, что считаю, что хочу:
Обновить несколько строк с помощью оператора 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






Используйте JOIN с вашим обновлением
UPDATE tEyeResults e
JOIN tPatientIDs p ON p.keyId = e.patientId
SET e.puid = tPatientIDs.keyid
Возможно, вам нужен пункт where, чтобы обновить только одного пациента, но я не нашел ни одного в вашем вопросе
Спасибо! Получилось именно то, что я хотел!
ваша ссылка предназначена для sqlserver, но вы пометили mysql - обновление нескольких таблиц - одно из различий между sqlserver и mysql. пожалуйста, прочтите dev.mysql.com/doc/refman/8.0/en/update.html