Mysql
 sql >> база данни >  >> RDS >> Mysql

Актуализирайте една MySQL таблица със стойности от друга

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 - http://en.wikipedia.org/ wiki/Join_(SQL)#Equi-join



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql 1050 Таблица за грешки вече съществува, но всъщност не съществува

  2. Ограничението за външния ключ на mysql е неправилно формирана грешка

  3. MySQL Cast като Boolean

  4. Преобразуване на времевата марка към дата в MySQL заявка

  5. 4 полезни инструмента за команден ред за наблюдение на производителността на MySQL в Linux