Nechcete fylker
v UPDATE
prohlášení. Měli byste také používat správné join
. Takže první přepsání je:
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
);
Pokud předpokládáme jedinou shodu v fylker
, tak to je v pohodě. Pokud existuje více shod, musíte vybrat jednu. Jednoduchá metoda je:
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
);
Poznámka:Toto aktualizuje všechny společnosti, které mají odpovídající „kommuner“. Pokud neexistuje žádný odpovídající "fylker", hodnota bude nastavena na NULL
. Věřím, že toto je záměr vaší otázky.
Také aliasy tabulek usnadňují psaní a čtení dotazu.