Nie chcesz fylker
w UPDATE
oświadczenie. Powinieneś także używać właściwego join
. Więc pierwsze przepisanie to:
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
);
Jeśli przyjmiemy pojedyncze dopasowanie w fylker
, to jest w porządku. Jeśli jest wiele dopasowań, musisz wybrać jedno. Prosta metoda to:
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
);
Uwaga:spowoduje to aktualizację wszystkich firm, które mają pasującego „kommunera”. Jeśli nie ma pasującego „fylkera”, wartość zostanie ustawiona na NULL
. Wierzę, że taki jest cel twojego pytania.
Ponadto aliasy tabel ułatwiają pisanie i czytanie zapytań.