Как обновить данные в одной таблице на основе данных из другой таблицы?
Уровень: Middle
Ответ
SQL позволяет делать UPDATE с JOIN или подзапросом. Например, в MySQL: UPDATE T1 JOIN T2 ON T1.id = T2.id SET T1.col = T2.new_value. В стандартном SQL можно так: UPDATE T1 SET col = (SELECT new_value FROM T2 WHERE T2.id = T1.id). Таким образом, сначала выбираются новые значения из другой таблицы по ключу, и затем они устанавливаются в целевой таблице. Важно, чтобы подзапрос возвращал единственное значение для каждой обновляемой строки.