Я пытаюсь перенести значение воздействия из старой таблицы (esp) в новую таблицу (esm). Обе таблицы имеют схожие структуры:
esp
+--------+------+----------------------------
|codeNorm|impact|Other columns i dont care...
+--------+------+----------------------------
esm
+--------------+------+--------------------------------------
|codeMasterNorm|impact|Other different columns i dont care...
+--------------+------+--------------------------------------
Сначала я создал запрос SELECT, который приносит только записи, которые имеют различное влияние между ними (влияние может быть NULL):
SELECT esm.codeMasterNorm, esm.impact, esp.codeNorm, esp.impact FROM esm
INNER JOIN esp ON esp.codeNorm = esm.codeMasterNorm AND IFNULL(esp.impact, 0) <> IFNULL(esm.impact, 0);
Это вернуло:
163 строки в наборе (0,75 с)
Затем я создал запрос UPDATE / INNER JOIN
UPDATE esm
INNER JOIN esp ON esp.codeNorm = esm.codeMasterNorm AND IFNULL(esp.impact, 0) <> IFNULL(esm.impact, 0)
SET esm.impact = esp.impact;
Это вернуло:
Запрос в порядке, затронуты 163 строки (1,35 с). Соответствующие строки: 163 Изменено: 163
Предупреждения: 0
Но когда я снова запускаю запрос SELECT, это возвращает тот же результат:
163 строки в наборе (1,25 с)
Есть идеи, почему не обновляются записи?