Одна небольшая модификация запроса Криса, добавьте предложение where, чтобы выбрать только те записи, которые требуют обновления. В противном случае для остальных дат будет установлено значение NULL
.
UPDATE Master m
SET
m.date = (SELECT r.date FROM Reponses r WHERE r.master_id = m.id)
WHERE m.id IN (SELECT master_id FROM Responses)
Обновлено, чтобы использовать псевдонимы, чтобы избежать путаницы, какой столбец приходит с какой таблицы.
Это не готовый, копируемый, доступный для запроса запрос, поскольку синтаксис UPDATE отличается от базы данных к базе данных.
Возможно, вам понадобится обратиться к SQL-ссылке вашей базы данных для JOIN в синтаксисе оператора UPDATE.
При наличии нескольких ответов на одну и ту же основную запись
UPDATE Master m
SET m.date = (
SELECT MAX(r.date) FROM Reponses r WHERE r.master_id = m.id)
WHERE m.id IN (SELECT master_id FROM Responses)
Я использовал MAX (), вы можете использовать все, что подходит для вашего бизнеса.
Опять потратить некоторое время на понимание SQL. Это едва ли несколько дней усилий. Получить справочник PLSQL Complete, если вы в Oracle