sql >> Databáze >  >> RDS >> Mysql

Jak aktualizovat dvě tabulky pomocí jediného příkazu JOIN na serveru MYSQL?

Za prvé, když provedete UPDATE JOIN, nezahrnuli jste žádné podmínky JOIN.. takže to zkusí udělat kartézský součin každé tabulky:

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

Měli byste se PŘIPOJIT na table1EN.id = table1xx.id pro každý stůl.

Dalším problémem je, že budete muset odkazovat na každý sloupec, který chcete změnit. Výsledkem bude:

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

Toho by se dalo dosáhnout dynamickým vytvářením příkazu, ale to je docela ohavné.

To vše mě vede k otázce vaší struktury databáze. Uvažovali jste o použití jedné tabulky se sloupcem jazyka navíc? buď dvoupísmenný identifikátor (OKish), nebo cizí klíč k tabulce jazyků (lépe)?



  1. MySQL kompenzuje nekonečné řádky

  2. jak zvýraznit výsledky vyhledávání

  3. Fond připojení pomocí pg-promise

  4. Jak předám návratový kód ze skriptu Oracle zpět do dávkového skriptu WINDOWS, který jej vyvolal?