2016-11-21 13 views
1

私はpid_nameカラムvarchar(40)を持つマスターテーブルを持っており、そのpid_nameカラムを別のテーブルプロセスのpnameで更新したいと思います。
プロセステーブルには、2つの列pidとpnameに100の異なる行があります。

マスタテーブルからのpidに、pid_nameの50Kを超える異なる値があります。私はプロセステーブルのすべての値とプロセステーブルに存在しないNULLでpid_nameを更新したいと思います。
私はRedshift Databaseを使用しています。事前に感謝
サンプルデータジョインでのテーブルの更新とifが存在しない場合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

おかげ期待

! しかし、pidがプロセステーブルに存在しない場合、これは自分のpid_nameをnullに更新しません。 –

+2

ああそうだ。 –

+0

完璧!どうもありがとうございます –

関連する問題