Postgresql:更新问题
我想做一些更新,逻辑上如下所示-Postgresql:更新问题,sql,postgresql,Sql,Postgresql,我想做一些更新,逻辑上如下所示- UPDATE t1 SET (x1, x2) = (SELECT x1, x2 FROM t1 WHERE id_1 = 8 AND id_2 =1 AND id_3 = 3) ; 但从表
UPDATE t1
SET (x1, x2) = (SELECT x1, x2
FROM t1
WHERE id_1 = 8
AND id_2 =1
AND id_3 = 3)
;
但从表面上看,这些类型的更新目前似乎没有在Postgresql中实现。除了经典样式(我所说的经典是指设置x1=value1,x2=value2,…
样式)之外,这个问题还有其他解决方法吗?您可以这样做:
UPDATE t1 SET x1 = a.x1, x2 = a.x2 FROM
(SELECT x1, x2 FROM t1 WHERE id_1 = 8 AND id_2 = 1 AND id_3 = 3) AS a
可能需要其他条件:
UPDATE t1 SET x1 = a.x1, x2 = a.x2 FROM
(SELECT id, x1, x2 FROM t1 WHERE id_1 = 8 AND id_2 = 1 AND id_3 = 3) AS a
WHERE a.id = t1.id