Sie wollen kein fylker
im UPDATE
Erklärung. Sie sollten auch einen korrekten join
verwenden . Die erste Umschreibung lautet also:
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
);
Nehmen wir eine einzelne Übereinstimmung in fylker
an , dann ist das in Ordnung. Wenn es mehrere Übereinstimmungen gibt, müssen Sie eine auswählen. Eine einfache Methode ist:
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
);
Hinweis:Dadurch werden alle Unternehmen aktualisiert, die einen passenden "kommuner" haben. Wenn es kein passendes "fylker" gibt, wird der Wert auf NULL
gesetzt . Ich glaube, das ist die Absicht Ihrer Frage.
Außerdem erleichtern Tabellenaliase das Schreiben und Lesen der Abfrage.