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.