2015-02-11 53 views
2

我想避免一個共同相關的子查詢,這又反過來使我從三個不同的表更新,我不太確定如何使用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; 

請幫我

回答

0

當你需要加入的更新,在FROM子句中分離(無需再次指定更新表)逗號隱含指定,在其中被指定連接標準的連接條款。

您的更新會是這個樣子:

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; 
相關問題