Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie aktualisiere ich zwei Tabellen mit einer einzigen JOIN-Anweisung auf dem MYSQL-Server?

Zunächst einmal, wenn Sie den UPDATE JOIN durchführen, haben Sie keine JOIN-Bedingungen eingefügt. Das wird also versuchen, ein kartesisches Produkt jeder Tabelle zu erstellen:

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

Sie sollten auf table1EN.id = table1xx.id VERBINDEN für jede Tabelle.

Das nächste Problem besteht darin, dass Sie auf jede Spalte verweisen müssen, die Sie ändern möchten. Daraus ergibt sich:

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

Dies könnte durch dynamisches Erstellen der Anweisung erreicht werden, aber das ist ziemlich abscheulich.

Das alles führt mich dazu, Ihre Datenbankstruktur in Frage zu stellen. Haben Sie darüber nachgedacht, eine Tabelle mit einer zusätzlichen Sprachspalte zu verwenden? entweder die aus zwei Buchstaben bestehende Kennung (OKish) oder ein Fremdschlüssel zu einer Sprachentabelle (besser)?