Я полагаю, вы хотите использовать синтаксис UPDATE ... FROM
:
UPDATE t1 SET v2 = t2.v2, v3 = t2.v3 FROM t2 WHERE t1.v1=t2.v1;
Рабочий пример:
create table t1 (v1 int, v2 text, v3 text);
create table t2 (v1 int, v2 text, v3 text);
insert into t1 values (1,null,null),(2, null, null),(3, null,null);
insert into t2 values (1,'a','b'),(2,'c','d'),(4,'e','f');
postgres=# select * from t1;
v1 | v2 | v3
----+----+----
1 | |
2 | |
3 | |
postgres=# UPDATE t1 SET v2 = t2.v2, v3 = t2.v3 FROM t2 WHERE t1.v1=t2.v1;
UPDATE 2
postgres=# select * from t1 order by v1;
v1 | v2 | v3
----+----+----
1 | a | b
2 | c | d
3 | |
И кстати, правильный синтаксис SELECT
:
SELECT *
FROM t1, t2
WHERE
t1.v1 = t2.v1
Раскрытие информации: я работаю на EnterpriseDB (EDB)