27

我需要将 ref_id1 从 table1 复制到 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

4 回答 4

33
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;

希望它对你有用。

于 2013-06-27T18:32:05.050 回答
12
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;
于 2013-06-27T18:41:16.827 回答
3

你想要的是

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

编辑这是你真正想要的

如此处所示(粗略)

于 2013-06-27T03:34:04.920 回答
0

我认为这应该有效:

UPDATE Table2
SET ref_id2 = ref_id1
FROM Table2 
   JOIN Table1 ON 
       Table2.Id = Table1.Id AND Table2.a_ref1 = Table1.b_ref1
于 2013-06-27T03:28:52.647 回答