如何将表的一列复制到PostgreSQL中另一个表的列中,比较相同的ID

时间:2013-06-27 03:20:35

标签: sql postgresql

我需要将table1中的ref_id1复制到table2中的列ref_id2中,匹配的两个东西将是:id(相同列名),a_ref1& b_ref1(列名不同,但数值相同)。

表1

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;

简而言之,需要通过比较id和a_ref1与b_ref1来将ref_id1复制到ref_id2,请让我知道如何做到这一点。

4 个答案:

答案 0 :(得分:27)

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;

希望它对你有用。

答案 1 :(得分:9)

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;

答案 2 :(得分:3)

你想要的是

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

修改这是您真正想要的

here(粗略地)

答案 3 :(得分:0)

我认为这应该有效:

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