how to write correctly this update ?

Started by Pierre Coudercalmost 7 years ago3 messagesgeneral
Jump to latest
#1Pierre Couderc
pierre@couderc.eu

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

#2Rob Sargent
robjsargent@gmail.com
In reply to: Pierre Couderc (#1)
Re: how to write correctly this update ?

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.)

Show quoted text

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

#3Pierre Couderc
pierre@couderc.eu
In reply to: Rob Sargent (#2)
Re: how to write correctly this update ?

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... ;)

Show quoted text

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