Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como atualizar duas tabelas com uma única instrução JOIN no servidor MYSQL?


Primeiramente, quando você faz o UPDATE JOIN, você não incluiu nenhuma condição de JOIN .. para tentar fazer um produto cartesiano de cada tabela:
#rows =  #rows_table1EN * #rows_table1ZH * ... * #rows_table1PT

Você deve entrar em table1EN.id = table1xx.id para cada mesa.

O próximo problema é que você terá que fazer referência a cada coluna que deseja alterar. Isso resultará em:
SET table1EN.detail = 'String Value',
    table1ZH.detail = 'String Value'
    ...
    table1PT.detail = 'String Value'

Isso poderia ser feito com a construção dinâmica da declaração, mas isso é bastante hediondo.

Isso tudo me leva a questionar sua estrutura de banco de dados. Você considerou usar uma tabela com uma coluna de idioma extra; ou o identificador de duas letras (OKish) ou uma chave estrangeira para uma tabela de idiomas (melhor)?