我有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 ;
但是不能这样做.
正确的语法是:
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
示例。
我需要从Redshift上的另一个表t2.val3获取值.我使用了以下内容
update t1 set val1 = t2.val3 from t2 join t1 t on t.id = t2.id;
我必须重新命名t1.否则Redshift抱怨.