Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Aktualizacja MySQL z wyborem z innej tabeli

Nie chcesz fylker w UPDATE oświadczenie. Powinieneś także używać właściwego join . Więc pierwsze przepisanie to:

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
                                     );

Jeśli przyjmiemy pojedyncze dopasowanie w fylker , to jest w porządku. Jeśli jest wiele dopasowań, musisz wybrać jedno. Prosta metoda to:

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
                                     );

Uwaga:spowoduje to aktualizację wszystkich firm, które mają pasującego „kommunera”. Jeśli nie ma pasującego „fylkera”, wartość zostanie ustawiona na NULL . Wierzę, że taki jest cel twojego pytania.

Ponadto aliasy tabel ułatwiają pisanie i czytanie zapytań.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można połączyć się zdalnie z instalacją EC2 MySQL

  2. prześlij obraz do bazy danych mysql php

  3. mysqld:Nie można zmienić katalogu na dane. Serwer się nie uruchamia

  4. Zwróć wartość null dla date_format, gdy input w mysql ma wartość null

  5. Kompatybilność MySQL z MacOS Sierra