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.