UPDATE tobeupdated
INNER JOIN original ON (tobeupdated.value = original.value)
SET tobeupdated.id = original.id
Това трябва да го направи и наистина прави точно това, което е твоето. Предпочитам обаче синтаксисът „JOIN“ за присъединяване, отколкото множество условия „WHERE“, мисля, че е по-лесно за четене
Колкото до бавното движение, колко големи са масите? Трябва да имате индекси на tobeupdated.value и original.value
РЕДАКТИРАНЕ:можем също да опростим заявката
UPDATE tobeupdated
INNER JOIN original USING (value)
SET tobeupdated.id = original.id
USING е съкратено, когато и двете таблици на съединение имат идентично име key като id . т.е. equi-join - https://en.wikipedia.org/ wiki/Join_(SQL)#Equi-join