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

Hvordan opdateres to tabeller med en enkelt JOIN-sætning i MYSQL-serveren?

Først og fremmest, når du laver OPDATERING JOIN, har du ikke inkluderet nogen JOIN-betingelser... så det vil prøve at lave et kartesisk produkt af hver tabel:

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

Du bør JOIN på table1EN.id = table1xx.id for hvert bord.

Det næste problem er, at du bliver nødt til at referere til hver kolonne, du vil ændre. Dette vil resultere i:

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

Dette kunne gøres ved dynamisk at bygge erklæringen, men det er ret uhyggeligt.

Alt dette får mig til at stille spørgsmålstegn ved din databasestruktur. Overvejede du at bruge én tabel med en ekstra sprogkolonne; enten to-bogstavs-id'en (OKish) eller en fremmednøgle til en sprogtabel (bedre)?



  1. Hvor står Oracle ADF 11g blandt Java EE Frameworks?

  2. Dubleret indtastning '0' for nøglen 'PRIMÆR'

  3. MYSQL indstiller tidszone i PHP-kode

  4. Brug NEWID() til at oprette en unik værdi i SQL Server