No quieres fylker en el UPDATE declaración. También debería usar un join adecuado . Así que la primera reescritura es:
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
);
Si asumimos una sola coincidencia en fylker , entonces esto está bien. Si hay varias coincidencias, debe elegir una. Un método simple es:
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
);
Nota:Esto actualizará todas las empresas que tengan un "kommuner" coincidente. Si no hay ningún "fylker" coincidente, el valor se establecerá en NULL . Creo que esta es la intención de su pregunta.
Además, los alias de tabla facilitan la escritura y lectura de la consulta.