Non vuoi fylker
nel UPDATE
dichiarazione. Dovresti anche usare un join
appropriato . Quindi la prima riscrittura è:
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
);
Se assumiamo una singola corrispondenza in fylker
, allora va bene. Se ci sono più corrispondenze, devi sceglierne una. Un metodo semplice è:
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:questo aggiornerà tutte le società che hanno un "kommuner" corrispondente. Se non ci sono "fylker" corrispondenti, il valore sarà impostato su NULL
. Credo che questo sia l'intento della tua domanda.
Inoltre, gli alias di tabella semplificano la scrittura e la lettura della query.