Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment mettre à jour deux tables avec une seule instruction JOIN dans le serveur MYSQL ?

Tout d'abord, lorsque vous effectuez le UPDATE JOIN, vous n'avez inclus aucune condition de JOIN. Cela va donc essayer de faire un produit cartésien de chaque table :

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

Vous devez vous JOINDRE sur table1EN.id = table1xx.id pour chaque tableau.

Le problème suivant est que vous devrez référencer chaque colonne que vous souhaitez modifier. Cela se traduira par :

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

Cela pourrait être fait en construisant dynamiquement l'instruction, mais c'est assez hideux.

Tout cela m'amène à remettre en question la structure de votre base de données. Avez-vous envisagé d'utiliser une table avec une colonne de langue supplémentaire ? soit l'identifiant à deux lettres (OKish) ou une clé étrangère vers une table de langues (mieux) ?