使用netezza中的三个表进行更新

时间:2015-02-11 10:12:37

标签: netezza

我试图避免一个共同相关的子查询,这反过来让我从三个不同的表更新,我不太确定如何使用netezza从三个表进行更新。

update stemp
set maxi = a.marks
from stemp
left join
sd696 sd 
where st.id = sd.id
left join
(select id,MAX(marks) marks from sm696 group by ID) a 
where a.id = sd.id;

请帮帮我

1 个答案:

答案 0 :(得分:0)

当您需要UPDATE中的连接时,连接在逗号分隔的FROM子句中隐式指定(不再指定UPDATEd表),并在WHERE子句中指定JOIN条件。

你的更新看起来像这样:

UPDATE stemp
SET maxi = a.marks
FROM sd696 sd,
   (
      SELECT id,
         MAX(marks) marks
      FROM sm696
      GROUP BY ID
   )
   a
WHERE stemp.id = sd.id
AND a.id       = sd.id;