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

Актуализация на MySQL с избор от друга таблица

Не искате fylker в UPDATE изявление. Трябва също да използвате подходящо join . Така че първото пренаписване е:

UPDATE companies c JOIN
       kommuner k
       ON c.forretningsadresse_kommune = k.kommuneNavn
    SET c.forretningsadresse_fylke = (SELECT f.fylkeNavn 
                                      FROM fylker f
                                      WHERE f.fylkeID = k.fylkeID
                                     );

Ако приемем едно съвпадение в fylker , тогава това е добре. Ако има няколко съвпадения, тогава трябва да изберете едно. Един прост метод е:

UPDATE companies c JOIN
       kommuner k
       ON c.forretningsadresse_kommune = k.kommuneNavn
    SET c.forretningsadresse_fylke = (SELECT f.fylkeNavn 
                                      FROM fylker f
                                      WHERE f.fylkeID = k.fylkeID
                                      LIMIT 1
                                     );

Забележка:Това ще актуализира всички компании, които имат съответстващ „kommuner“. Ако няма съответстващ "fylker", стойността ще бъде зададена на NULL . Вярвам, че това е целта на въпроса ви.

Освен това псевдонимите на таблици правят заявката по-лесна за писане и четене.



  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 съхранява парола в бисквитка

  3. използването на инструкция mysql LOAD в PHP се проваля, но това чрез команден ред работи

  4. Как да съхранявате IPv6-съвместим адрес в релационна база данни

  5. Списък със съхранени процедури/функции Mysql команден ред