Не искате 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
. Вярвам, че това е целта на въпроса ви.
Освен това псевдонимите на таблици правят заявката по-лесна за писане и четене.