2017-05-22 13 views
1

この更新はwhere句では機能しないため、更新は私のためにすべてそれを行います。内部結合を使用した更新Postgresql

UPDATE ventas SET eav_id = 7 
FROM ventas AS A 
inner join ventasDetalle AS e on A.act_id = e.act_id and e.exp_id = A.exp_id 
where a.eav_id = 1 

答えて

1
update ventas a 
set eav_id = 7 
from ventasDetalle e 
where a.eav_id = 1 and (a.act_id, a.exp_id) = (e.act_id, e.exp_id) 
+0

タンク! !私が望んだのと違っていますが、それは機能します – Max

0

PostgreSQLのUPDATE構文は次のとおりです。

[ WITH [ RECURSIVE ] with_query [, ...] ] 
UPDATE [ ONLY ] table [ [ AS ] alias ] 
    SET { column = { expression | DEFAULT } | 
      (column [, ...]) = ({ expression | DEFAULT } [, ...]) } [, ...] 
    [ FROM from_list ] 
    [ WHERE condition | WHERE CURRENT OF cursor_name ] 
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] 

だから私は、あなたがしたいと思う:

UPDATE ventas AS A 
SET eav_id = 7 
FROM ventasDetalle AS e 
WHERE (A.act_id = e.act_id and e.exp_id = A.exp_id) 
+0

エラーデsintaxisエンOセルカデ«インナー» – Max

関連する問題