Anda tidak ingin fylker
di UPDATE
penyataan. Anda juga harus menggunakan join
. yang tepat . Jadi penulisan ulang pertama adalah:
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
);
Jika kita mengasumsikan satu kecocokan di fylker
, maka ini baik-baik saja. Jika ada beberapa kecocokan, maka Anda harus memilih salah satu. Cara sederhananya adalah:
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
);
Catatan:Ini akan memperbarui semua perusahaan yang memiliki "kommuner" yang cocok. Jika tidak ada "fylker" yang cocok, nilainya akan ditetapkan ke NULL
. Saya yakin ini adalah maksud dari pertanyaan Anda.
Juga, alias tabel membuat kueri lebih mudah untuk ditulis dan dibaca.