Mysql
 sql >> Database >  >> RDS >> Mysql

Come aggiornare due tabelle con una singola istruzione JOIN nel server MYSQL?

Prima di tutto, quando esegui UPDATE JOIN, non hai incluso alcuna condizione di JOIN.. quindi proverà a fare un prodotto cartesiano di ogni tabella:

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

Dovresti ENTRARE su table1EN.id = table1xx.id per ogni tavolo.

Il prossimo problema è che dovrai fare riferimento a ciascuna colonna che desideri modificare. Ciò risulterà in:

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

Questo potrebbe essere fatto con la creazione dinamica dell'istruzione, ma è abbastanza orribile.

Tutto questo mi porta a mettere in discussione la struttura del tuo database. Hai considerato l'utilizzo di una tabella con una colonna di lingua aggiuntiva; l'identificatore di due lettere (OK) o una chiave esterna a una tabella delle lingue (meglio)?