आप नहीं चाहते fylker
UPDATE
में बयान। आपको उचित join
. का भी उपयोग करना चाहिए . तो पहला पुनर्लेखन है:
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
);
अगर हम fylker
. में एक भी मैच मान लें , तो यह ठीक है। यदि कई मैच हैं, तो आपको एक को चुनना होगा। एक आसान तरीका है:
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
);
नोट:यह उन सभी कंपनियों को अपडेट करेगा जिनके पास "कॉम्यूनर" से मेल खाता है। यदि कोई मेल खाने वाला "fylker" नहीं है, तो मान NULL
. पर सेट हो जाएगा . मुझे विश्वास है कि यह आपके प्रश्न का उद्देश्य है।
साथ ही, टेबल उपनाम क्वेरी को लिखने और पढ़ने में आसान बनाते हैं।