Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Update en sous requete

3 réponses
Avatar
Roumegou Eric
Bonjour,

Est-il possible en SQL (mySQL) de faire une màj directe UPDATE par une
requete Select ?

Je m'explique
Soit la req suivante

select benef.ppl_refext as ORD_STAT1,
TG.ppl_refext as ORD_STAT2,
'' as STAT3,
benef.adr_rs as STAT4,
reg.ADR_RS as STAT5,
IC.adr_nom as STAT6,
'' as stat7,
TG.adr_nom as stat8
from people_order
inner join people benef on people_order.ppl_id=benef.ppl_id
inner join people TG on benef.ppl_pere_1=TG.ppl_id
inner join people IC on benef.ppl_pere_3=IC.ppl_id
inner join people reg on IC.ppl_pere_1=reg.ppl_id
where ord_id=97

je voudrais faire un update people_order set ORD_STAT1= , ORD_STAT2=
...
where people_order.ord_id=97

En SQL bien sûr, je sais faire autrement. En fait je voudrais pouvoir
paramétrer ds un fichier une requête (ces màj sont diff d'un dossier à
l'autre) et executer cela comme une sorte de trigger.

Je sais que l'on peut le faire pour une colonne mais un groupe ??

(et je ne veux pas utiliser les triggers car trop propriétaire à la
base)

3 réponses

Avatar
Pierre BOUSQUET
UPDATE people_order SET ORD_STAT1¾nef.ppl_refext ,
ORD_STAT2=ppl_refext
from people_order
inner join people benef on people_order.ppl_id¾nef.ppl_id
inner join people TG on benef.ppl_pere_1=TG.ppl_id
inner join people IC on benef.ppl_pere_3=IC.ppl_id
inner join people reg on IC.ppl_pere_1=reg.ppl_id
where ord_id—


ca devrait marcher

Roumegou Eric a écrit :
Bonjour,

Est-il possible en SQL (mySQL) de faire une màj directe UPDATE par une
requete Select ?

Je m'explique
Soit la req suivante

select benef.ppl_refext as ORD_STAT1,
TG.ppl_refext as ORD_STAT2,
'' as STAT3,
benef.adr_rs as STAT4,
reg.ADR_RS as STAT5,
IC.adr_nom as STAT6,
'' as stat7,
TG.adr_nom as stat8
from people_order
inner join people benef on people_order.ppl_id¾nef.ppl_id
inner join people TG on benef.ppl_pere_1=TG.ppl_id
inner join people IC on benef.ppl_pere_3=IC.ppl_id
inner join people reg on IC.ppl_pere_1=reg.ppl_id
where ord_id—

je voudrais faire un update people_order set ORD_STAT1= , ORD_STAT2= ...
where people_order.ord_id—

En SQL bien sûr, je sais faire autrement. En fait je voudrais pouvoir
paramétrer ds un fichier une requête (ces màj sont diff d'un dossier à
l'autre) et executer cela comme une sorte de trigger.

Je sais que l'on peut le faire pour une colonne mais un groupe ??

(et je ne veux pas utiliser les triggers car trop propriétaire à la base)



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
Roumegou Eric
Pierre BOUSQUET a écrit :
UPDATE people_order SET ORD_STAT1¾nef.ppl_refext , ORD_STAT2=ppl_refext
from people_order
inner join people benef on people_order.ppl_id¾nef.ppl_id
inner join people TG on benef.ppl_pere_1=TG.ppl_id
inner join people IC on benef.ppl_pere_3=IC.ppl_id
inner join people reg on IC.ppl_pere_1=reg.ppl_id
where ord_id—


ca devrait marcher



update people_order
set ORD_STAT1¾nef.ppl_refext,
ORD_STAT2=TG.ppl_refext,
ORD_STAT3='',
ORD_STAT4¾nef.adr_rs,
ORD_STAT5=reg.ADR_RS,
ORD_STAT6=IC.adr_nom,
ORD_STAT7='',
ORD_STAT8=TG.adr_nom
from people_order
inner join people benef on people_order.ppl_id¾nef.ppl_id
inner join people TG on benef.ppl_pere_1=TG.ppl_id
inner join people IC on benef.ppl_pere_3=IC.ppl_id
inner join people reg on IC.ppl_pere_1=reg.ppl_id
where ord_id—

bien essayé mais non
ça marche pô

:/
Avatar
Pierre BOUSQUET
bon ben voila (j'aime pas les jointures dans le WHERE m'enfin...) :

UPDATE test1, test2 SET test1.c2=test2.c2
where test2.c1=test1.c1


Roumegou Eric a pensé très fort :
Pierre BOUSQUET a écrit :
UPDATE people_order SET ORD_STAT1¾nef.ppl_refext , ORD_STAT2=ppl_refext
from people_order
inner join people benef on people_order.ppl_id¾nef.ppl_id
inner join people TG on benef.ppl_pere_1=TG.ppl_id
inner join people IC on benef.ppl_pere_3=IC.ppl_id
inner join people reg on IC.ppl_pere_1=reg.ppl_id
where ord_id—


ca devrait marcher



update people_order
set ORD_STAT1¾nef.ppl_refext,
ORD_STAT2=TG.ppl_refext,
ORD_STAT3='',
ORD_STAT4¾nef.adr_rs,
ORD_STAT5=reg.ADR_RS,
ORD_STAT6=IC.adr_nom,
ORD_STAT7='',
ORD_STAT8=TG.adr_nom
from people_order
inner join people benef on people_order.ppl_id¾nef.ppl_id
inner join people TG on benef.ppl_pere_1=TG.ppl_id
inner join people IC on benef.ppl_pere_3=IC.ppl_id
inner join people reg on IC.ppl_pere_1=reg.ppl_id
where ord_id—

bien essayé mais non
ça marche pô

:/



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "