sql >> Databasteknik >  >> RDS >> Mysql

Hur uppdaterar jag två tabeller med en enda JOIN-sats i MYSQL-servern?

Först och främst när du gör UPPDATERA JOIN, har du inte inkluderat några JOIN-villkor... så det kommer att försöka göra en kartesisk produkt av varje tabell:

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

Du bör GÅ MED på table1EN.id = table1xx.id för varje bord.

Nästa problem är att du måste referera till varje kolumn du vill ändra. Detta kommer att resultera i:

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

Detta skulle kunna göras genom att dynamiskt bygga uttalandet, men det är ganska avskyvärt.

Allt detta får mig att ifrågasätta din databasstruktur. Funderade du på att använda en tabell med en extra språkkolumn; antingen tvåbokstavsidentifieraren (OKish) eller en främmande nyckel till en språktabell (bättre)?



  1. Hur kan jag gruppera fält med mysql?

  2. Hur man filtrerar poster med aggregatfunktion AVG

  3. SQLite COUNT

  4. Hur man integrerar PostgreSql med EntityFramework 6.0.2?