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

Jak zaktualizować dwie tabele za pomocą pojedynczej instrukcji JOIN na serwerze MYSQL?

Po pierwsze, kiedy wykonujesz UPDATE JOIN, nie uwzględniłeś żadnych warunków JOIN .. więc spróbujemy wykonać iloczyn kartezjański dla każdej tabeli:

#rows =  #rows_table1EN * #rows_table1ZH * ... * #rows_table1PT

Powinieneś DOŁĄCZYĆ do table1EN.id = table1xx.id dla każdego stołu.

Następny problem polega na tym, że będziesz musiał odwołać się do każdej kolumny, którą chcesz zmienić. Spowoduje to:

SET table1EN.detail = 'String Value',
    table1ZH.detail = 'String Value'
    ...
    table1PT.detail = 'String Value'

Można to zrobić dynamicznie budując oświadczenie, ale jest to dość ohydne.

To wszystko prowadzi mnie do zakwestionowania struktury twojej bazy danych. Czy rozważałeś użycie jednej tabeli z dodatkową kolumną językową; albo dwuliterowy identyfikator (OKish) albo klucz obcy do tabeli języków (lepiej)?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obsługa daty zerowej MySQL za pomocą EF Core

  2. Partycja tabeli MySQL według miesiąca

  3. mysql 5.7 błąd log-slow-queries

  4. Mysql zmienia domyślny zestaw znaków tabeli na zestaw znaków bazy danych

  5. Jak wybrać bazę danych MySQL do użycia z PDO w PHP?