Du vil ikke have fylker
i UPDATE
udmelding. Du bør også bruge en korrekt join
. Så den første omskrivning er:
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
);
Hvis vi antager et enkelt match i fylker
, så er det fint. Hvis der er flere kampe, skal du vælge én. En simpel metode er:
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
);
Bemærk:Dette vil opdatere alle virksomheder, der har en matchende "kommuner". Hvis der ikke er nogen matchende "fylker" vil værdien blive sat til NULL
. Jeg tror, det er hensigten med dit spørgsmål.
Tabelaliasser gør også forespørgslen nemmere at skrive og læse.