Это должно привести к обновлению new1 и new2 в конфигурации до значений new1 и new2 в tmp_config, где всегда совпадают идентификаторы из двух таблиц (и ноль, если в tmp_config нет совпадений).
Я полагаю, это то, что вы сказали, что пытаетесь сделать.
Из справки об обновлении MySql :
Вы также можете выполнять операции обновления
покрытие нескольких столов. Тем не менее, вы
нельзя использовать ORDER BY или LIMIT с
ОБНОВЛЕНИЕ нескольких таблиц.
Предложение table_references перечисляет
таблицы участвуют в объединении. это
синтаксис описан в разделе
12.2.8.1, «Синтаксис JOIN». Вот пример:
ОБНОВЛЕНИЕ элементов, месяц SET
items.price = month.price ГДЕ
items.id = month.id;
В этом случае они не используют только синтаксис «JOIN», но синтаксис JOIN должен быть действительным, вам просто нужно сделать это до предложения SET.
Это будет выглядеть примерно так:
UPDATE `config`
LEFT JOIN `tmp_config` ON (`tmp_config`.`tmp_id` = `config`.`id`)
SET `config`.`new1` = `tmp_config`.`new1`, `config`.`new2` = `tmp_config`.`new2`