Du vill inte ha fylker
i UPDATE
påstående. Du bör också använda en korrekt join
. Så den första omskrivningen är:
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
);
Om vi antar en enda matchning i fylker
, då är det bra. Om det finns flera matchningar måste du välja en. En enkel metod är:
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
);
Obs:Detta kommer att uppdatera alla företag som har en matchande "kommuner". Om det inte finns någon matchande "fylker" kommer värdet att sättas till NULL
. Jag tror att det är meningen med din fråga.
Tabellalias gör också frågan lättare att skriva och läsa.