2016-11-21 64 views
1

我有一個主表與pid_name列varchar(40),我想更新pid_name colulmn從另一個表進程的pname。
Processes表具有2列pid和pname以及100個不同的行。

主表中的pid對於pid_name具有超過50K個不同的值。我想用進程表中的所有值和NULL在進程表中不存在的值更新pid_name。
我正在使用Redshift數據庫。在此先感謝
樣本數據更新表與聯接,如果不存在然後NULL

主表之前更新
ID Pid_name
1 abc
2 def
3 ghi

流程表
pid pname
abc Process_1
def Process_2

預計在主表輸出更新
ID Pid_name
1 Process_1
2 Process_2
3 NULL(因爲它不會在進程表中存在)

回答

4
UPDATE master 
SET pid_name = 
    (SELECT pname 
    FROM processes p 
    WHERE p.pid = master.pid_name); 
+0

感謝您的回答Laurenz後! 但是,如果在進程表中不存在pid,這將不會將我的pid_name更新爲空。 –

+2

哦,是的,它會的。 –

+0

完美!非常感謝 –

相關問題