Обсуждение: how to write correctly this update ?
I have tried many ways to update a table : UPDATE personnes T1 SET T1.nom_naiss=T1.nom FROM personnes T2, personnes T3 WHERE ....; UPDATE personnes T1 SET T1.nom_naiss=T1.nom FROM personnes T1, personnes T2, personnes T3 WHERE ..; In my case , where clause is : WHERE T1.id=T2.id_mere AND T2.id_pere=T3.id AND T1.nom != T3.nom; Thanks. PC
Don’t use the alias on the column(s) being set. This passed the parser: UPDATE personnes T1 SET nom_naiss=T1.nom FROM personnes T2, personnes T3 WHERE T1.id=T2.id_mere AND T2.id_pere=T3.id AND T1.nom != T3.nom; (I have no data in my table so I can’t confirm the logic. You seem to want to update mother’s maiden name if her current(sur)name doesn’t match that of the father of (one of?) her children? That might be a serious leap of faith.) > On May 22, 2019, at 6:43 AM, Pierre Couderc <pierre@couderc.eu> wrote: > > I have tried many ways to update a table : > > UPDATE personnes T1 SET T1.nom_naiss=T1.nom FROM personnes T2, personnes T3 > WHERE ....; > > > UPDATE personnes T1 SET T1.nom_naiss=T1.nom FROM personnes T1, personnes T2, personnes T3 > WHERE ..; > > > In my case , where clause is : WHERE T1.id=T2.id_mere AND T2.id_pere=T3.id AND T1.nom != T3.nom; > > Thanks. > > PC > > > > > >
On 5/22/19 3:19 PM, Rob Sargent wrote: > Don’t use the alias on the column(s) being set. > This passed the parser: > UPDATE personnes T1 SET nom_naiss=T1.nom FROM personnes T2, personnes T3 > WHERE T1.id=T2.id_mere AND T2.id_pere=T3.id AND T1.nom != T3.nom; Wow, fine ! you got it! > > (I have no data in my table so I can’t confirm the logic. You seem to want to update mother’s maiden name if her current(sur)name doesn’t match that of the father of (one of?) her children? That might be a serious leap of faith.) Now I check manually... ;) > >> On May 22, 2019, at 6:43 AM, Pierre Couderc <pierre@couderc.eu> wrote: >> >> I have tried many ways to update a table : >> >> UPDATE personnes T1 SET T1.nom_naiss=T1.nom FROM personnes T2, personnes T3 >> WHERE ....; >> >> >> UPDATE personnes T1 SET T1.nom_naiss=T1.nom FROM personnes T1, personnes T2, personnes T3 >> WHERE ..; >> >> >> In my case , where clause is : WHERE T1.id=T2.id_mere AND T2.id_pere=T3.id AND T1.nom != T3.nom; >> >> Thanks. >> >> PC >> >> >> >> >> >>