Bạn không muốn fylker
trong UPDATE
tuyên bố. Bạn cũng nên sử dụng một join
thích hợp . Vì vậy, lần viết lại đầu tiên là:
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
);
Nếu chúng ta giả sử một kết quả trùng khớp trong fylker
, sau đó điều này là tốt. Nếu có nhiều kết quả phù hợp, thì bạn cần phải chọn một. Một phương pháp đơn giản là:
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
);
Lưu ý:Điều này sẽ cập nhật tất cả các công ty có "kommuner" phù hợp. Nếu không có "fylker" phù hợp, giá trị sẽ được đặt thành NULL
. Tôi tin rằng đây là mục đích câu hỏi của bạn.
Ngoài ra, bí danh bảng giúp truy vấn dễ viết và dễ đọc hơn.