@zaratustra के स्पष्टीकरण के अलावा, आपका मर्ज fn
सेट करने का भी प्रयास कर रहा है और ln
उसी name
. के लिए value तो यह वह परिणाम नहीं देगा जो आप चाहते हैं यहां तक कि यह भी काम करता है। और आप fn
का उपयोग नहीं कर सकते या ln
using
. में खंड के रूप में आप उन्हें अद्यतन करने का प्रयास कर रहे हैं।
अगर आपका name_test
तालिका में प्राथमिक कुंजी (या कम से कम अद्वितीय) कॉलम था तो आप उसे मर्ज में शामिल कर सकते थे, लेकिन आप अभी भी केवल fn
को सही ढंग से अपडेट करने में सक्षम होंगे या ln
एक पास में मूल्य।
मुझे यकीन नहीं है कि आप एक साधारण अपडेट क्यों नहीं कर रहे हैं:
update name_test nt
set fn = (select td.name from temp_distinct td where td.fn = nt.fn),
ln = (select td.name from temp_distinct td where td.fn = nt.ln);
8 rows updated.
select * from name_test;
FN LN
----- -----
Mich Steve
Mich Phil
Mark Dave
Mich Phil
Mich Dave
Phil John
Steve Dean
Steve Phil