J'ai 3 tableaux t1, t2 et t3.
t1 a 2 colonnes-> id1, val1
t2 -> id2, val2
t3 -> id3, val3
If id1=id2 and id2 = id3
alors je dois mettre à jour val1 et val3. Mais j'ai répéter id1 et chacun devrait avoir le même val3
J'utilise
update t1
inner join t2 on t1.id1 = t2.id2
inner join t3 on t2.id2 = t3.id3
set t1.val1 = t3.val3
;
Mais pas en mesure de le faire.
La syntaxe correcte est:
UPDATE table_name SET column = { expression | DÉFAUT } [...]
[FROM fromlist ]
[OERE condition ]
Votre instruction UPDATE
doit donc ressembler à ceci:
update t1 set val1 = val3
from t2 inner join t3 on t2.id2 = t3.id3
where t1.id1 = t2.id2
;
Voir le documentation Redshift et leurs exemples complets UPDATE
.
J'avais besoin d'obtenir des valeurs de l'autre table, t2.val3, sur Redshift. J'ai utilisé ce qui suit
update t1
set val1 = t2.val3
from t2 join t1 t on t.id = t2.id;
Je dois renommer t1. Sinon, Redshift se plaint.