Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zaktualizuj jedną tabelę MySQL o wartości z innej

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

To powinno wystarczyć i naprawdę robi dokładnie to, czym jest twoje. Jednak wolę składnię „JOIN” dla złączeń niż wiele warunków „WHERE”, myślę, że jest łatwiejsza do odczytania

Jeśli chodzi o bieganie wolno, jak duże są stoły? Powinieneś mieć indeksy na tobeupdated.value i original.value

EDYCJA:możemy również uprościć zapytanie

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

USING jest skrótem, gdy obie tabele złączenia mają identyczny nazwany key takie jak id . tj. 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. Zaktualizuj kolumnę w MySQL

  2. MySQL kontra MariaDB

  3. Jak utworzyć bazę danych ze skryptu w MySQL

  4. PHP mysql wstaw format daty

  5. Wybierz dane z zakresu dat/czasów