Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Perbarui satu tabel MySQL dengan nilai dari yang lain

UPDATE tobeupdated
INNER JOIN original ON (tobeupdated.value = original.value)
SET tobeupdated.id = original.id

Itu harus melakukannya, dan benar-benar melakukan apa yang menjadi milik Anda. Namun, saya lebih suka sintaks 'JOIN' untuk bergabung daripada beberapa kondisi 'WHERE', saya pikir lebih mudah dibaca

Sedangkan untuk berjalan lambat, seberapa besar tabelnya? Anda harus memiliki indeks di tobeupdated.value dan original.value

EDIT:kami juga dapat menyederhanakan kueri

UPDATE tobeupdated
INNER JOIN original USING (value)
SET tobeupdated.id = original.id

USING adalah singkatan ketika kedua tabel gabungan memiliki nama key yang identik seperti id . yaitu sebuah 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. Indeks PostgreSQL vs Indeks InnoDB - Memahami Perbedaannya

  2. Panduan untuk memahami pola penskalaan basis data

  3. Format tanggal penyisipan mysql PHP

  4. MySQL:Mengurutkan nilai GROUP_CONCAT

  5. Setel ulang kata sandi root MySQL menggunakan pernyataan ALTER USER setelah menginstal di Mac