当前位置:  开发笔记 > 编程语言 > 正文

带连接的Redshift表更新

如何解决《带连接的Redshift表更新》经验,为你挑选了2个好方法。

我有3个表t1,t2和t3.
t1有2列 - > id1,val1

t2 -> id2, val2  
t3 -> id3, val3  
If id1=id2 and id2 = id3 

然后我需要更新val1 ad val3.但我重复id1,每个都应该有相同的val3

我在用

update  t1
inner join  t2 on t1.id1 = t2.id2
inner join  t3 on t2.id2 = t3.id3
set t1.val1 =  t3.val3
;

但是不能这样做.



1> moertel..:

正确的语法是:

UPDATE table_name SET列= { 表达式 | 默认} [,...]
[来自发件人列表 ]
[位置条件 ]

因此,您的UPDATE陈述应如下所示:

update t1 set val1 = val3
from t2 inner join t3 on t2.id2 = t3.id3
where t1.id1 = t2.id2
;

请参阅Redshift文档及其完整UPDATE示例。



2> 小智..:

我需要从Redshift上的另一个表t2.val3获取值.我使用了以下内容

update t1 
set val1 = t2.val3
from t2 join t1 t on t.id = t2.id;

我必须重新命名t1.否则Redshift抱怨.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有