2013-06-27 4 views
12

की तुलना में किसी तालिका के एक कॉलम की प्रतिलिपि बनाने के लिए कैसे करें तालिका 2 में तालिका 1 से कॉलम ref_id2 में ref_id1 को कॉपी करने की आवश्यकता है, दो चीजें मेलिंग होंगी: आईडी (समान कॉलम नाम), a_ref1 & b_ref1 (कॉलम नाम अलग हैं लेकिन संख्यात्मक मान समान होगा)।पोस्टग्रेएसक्यूएल में एक तालिका के एक कॉलम को एक ही आईडी

Table1

ID  ref_id1      a_ref1 
9  2.3456762498;    1367602349 
9  1.61680784158;    1367653785 
9  2.63461385408;    1367687746 
9  0;1367688520 
9  0.780442217152;    1367740313 
9  3.18328461662;    1367773889 
9  0.775471247616;    1367774978 

तालिका 2

ID   b_ref1      ref_id2 
9  1367602349; 
9  1367740313; 
9  1367774978; 
2  1357110511; 
2  1357186899; 
2  1357195928; 
2  1357199525; 

b_ref1 साथ आईडी और a_ref1 की तुलना द्वारा ref_id2 को ref_id1 कॉपी करने के लिए संक्षेप जरूरत में, कृपया मुझे पता है कि कैसे करना है करते हैं।

उत्तर

17
UPDATE public.clean_trips_byobu 
SET trip_dist = clean_trips.bktp_mt_total 
FROM public.clean_trips 
WHERE public.clean_trips.obu_id = clean_trips_byobu.obu_id 
AND clean_trips.bktp_trip_id = clean_trips_byobu.trip_id; 

आशा है कि यह आपके लिए काम करेगा।

0

मुझे लगता है कि यह काम करना चाहिए:

UPDATE Table2 
SET ref_id2 = ref_id1 
FROM Table2 
    JOIN Table1 ON 
     Table2.Id = Table1.Id AND Table2.a_ref1 = Table1.b_ref1 
+0

उपयोगकर्ता 2480596, आपका उत्तर चलता है, लेकिन कॉलम अपडेट नहीं हो रहा है। अपने डेटा अलग है, लेकिन उद्देश्य पूरी तरह से एक ही है, मैं निम्न क्वेरी अद्यतन public.clean_trips_byobu सेट trip_dist = (चयन clean_trips से bktp_mt_total दौड़ा शामिल हों clean_trips_byobu पर clean_trips_byobu.obu_id = clean_trips.obu_id और clean_trips_byobu.trip_id = clean_trips.bktp_mt_total); यह लौटाता है: क्वेरी सफलतापूर्वक लौटा दी गई: 284193 पंक्तियां प्रभावित हुईं, 69580 एमएस निष्पादन समय। लेकिन कॉलम trip_dist बिल्कुल नहीं बदला गया है। – NamertaArora

2

तुम क्या चाहते

UPDATE Table2 
SET ref_id2 = table1.ref_id1 
FROM table1 
WHERE table1.id = table2.id 
AND table1.a_ref1 = table2.b_ref1; 

संपादित है यह वही है कि आप वास्तव में चाहते हैं

रूप here (कुदरती तौर से) देखा

7
UPDATE Table2 --format schema.table_name 
SET 
ref_id2 = table1.ref_id1 
FROM table1 -- mention schema name 
WHERE table1.id = table2.id 
AND 
table1.a_ref1 = table2.b_ref1; 
संबंधित मुद्दे