Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да актуализирате две таблици с един оператор JOIN в MYSQL сървър?

Първо, когато правите UPDATE JOIN, не сте включили никакви JOIN условия.. така че ще се опитате да направите декартово произведение на всяка таблица:

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

Трябва да се ПРИСЪЕДИНЕТЕ към table1EN.id = table1xx.id за всяка таблица.

Следващият проблем е, че ще трябва да посочите всяка колона, която искате да промените. Това ще доведе до:

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

Това може да се направи с динамично изграждане на израза, но това е доста отвратително.

Всичко това ме кара да се съмнявам в структурата на вашата база данни. Обмисляли ли сте да използвате една таблица с допълнителна езикова колона; или двубуквен идентификатор (OKish) или чужд ключ към таблица с езици (по-добре)?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обработка на голям набор от резултати от mysql с ограничена памет

  2. Пълна система за регистрация на потребители, използваща PHP и MySQL база данни

  3. Защо PDO_MySQL не върне цяло число?

  4. MySQL тестови привилегии

  5. MYSQL заявка между две времеви марки