2013-06-27 35 views
12

Ho bisogno di copiare ref_id1 da table1 ALLA colonna ref_id2 nella table2 le due cose corrispondenti saranno: id (stesso nome di colonna), a_ref1 & b_ref1 (i nomi delle colonne sono diversi ma il valore numerico sarà identico).Come copiare una colonna di una tabella nella colonna di un'altra tabella in PostgreSQL confrontando lo stesso ID

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 

Table2

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

In poche parole bisogno di copiare ref_id1 a ref_id2 confrontando id e a_ref1 con b_ref1, Per favore fatemi sapere come fare.

risposta

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; 

Spero che funzionerà per voi.

0

penso che questo dovrebbe funzionare:

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

user2480596, la risposta viene eseguito, ma la colonna non è sempre aggiornato. miei dati è diverso, ma scopo è del tutto lo stesso, ho fatto funzionare la seguente query UPDATE public.clean_trips_byobu SET trip_dist = (SELECT bktp_mt_total DA clean_trips JOIN clean_trips_byobu ON clean_trips_byobu.obu_id = clean_trips.obu_id E clean_trips_byobu.trip_id = clean_trips.bktp_mt_total); restituisce: la query è stata restituita correttamente: 284193 righe interessate, 69580 ms tempo di esecuzione. ma la colonna trip_dist non viene cambiata affatto. – NamertaArora

2

quello che vuoi è

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

Edit Questo è ciò che si desidera veramente

Come si è visto here (grossolanamente)

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; 
Problemi correlati