Update en sous requete

Le
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¾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)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre BOUSQUET
Le #14551361
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. "
Roumegou Eric
Le #14551311
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
Le #14551201
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. "
Publicité
Poster une réponse
Anonyme