Не искате fylker в UPDATE изявление. Трябва също да използвате подходящо join . Така че първото пренаписване е:
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
);
Ако приемем едно съвпадение в fylker , тогава това е добре. Ако има няколко съвпадения, тогава трябва да изберете едно. Един прост метод е:
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
);
Забележка:Това ще актуализира всички компании, които имат съответстващ „kommuner“. Ако няма съответстващ "fylker", стойността ще бъде зададена на NULL . Вярвам, че това е целта на въпроса ви.
Освен това псевдонимите на таблици правят заявката по-лесна за писане и четене.