Soit 3 tables avec chacune deux champs
t1. id, t1.ref
t2. id, t2.val
t3. ref, t3.val
j'ai besoin de faire un update de t2.val =E0 partir de t3.val
je n'ai aucun champ commun entre t2 et t3
t1.id et t2.id sont communs
t1.ref et t3.ref sont communs
Ca fait 5 heures que je suis sur ce pb d'update et je ne vois plus
rien, alors si qqun peut rallumer la lumi=E8re :-)
Merci
PS : c'est sous mysql mais le principe reste certainement vrai quel
que soit le sgbd.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ALain Montfranc
groumph a écrit
Soit 3 tables avec chacune deux champs t1. id, t1.ref t2. id, t2.val t3. ref, t3.val
j'ai besoin de faire un update de t2.val à partir de t3.val je n'ai aucun champ commun entre t2 et t3 t1.id et t2.id sont communs t1.ref et t3.ref sont communs
Ca fait 5 heures que je suis sur ce pb d'update et je ne vois plus rien, alors si qqun peut rallumer la lumière :-) Merci
PS : c'est sous mysql mais le principe reste certainement vrai quel que soit le sgbd.
Sous postgresql tu peux faire un update from :
update t2 set val = t3.val from t1, t3 where t1.id = t2.id and t1.ref = t3.ref;
Mais le update from est (de mémoire) une extension à la norme)
Sinon :
update t2 set val = (select val from t1, t3 where t1.id = t2.id and t1.ref = t3.ref) ;
Doit marcher sous reserve des unicités qui vont bien
groumph a écrit
Soit 3 tables avec chacune deux champs
t1. id, t1.ref
t2. id, t2.val
t3. ref, t3.val
j'ai besoin de faire un update de t2.val à partir de t3.val
je n'ai aucun champ commun entre t2 et t3
t1.id et t2.id sont communs
t1.ref et t3.ref sont communs
Ca fait 5 heures que je suis sur ce pb d'update et je ne vois plus
rien, alors si qqun peut rallumer la lumière :-)
Merci
PS : c'est sous mysql mais le principe reste certainement vrai quel
que soit le sgbd.
Sous postgresql tu peux faire un update from :
update t2 set val = t3.val
from t1, t3 where t1.id = t2.id and t1.ref = t3.ref;
Mais le update from est (de mémoire) une extension à la norme)
Sinon :
update t2 set val = (select val from t1, t3 where t1.id = t2.id and
t1.ref = t3.ref) ;
Doit marcher sous reserve des unicités qui vont bien
Soit 3 tables avec chacune deux champs t1. id, t1.ref t2. id, t2.val t3. ref, t3.val
j'ai besoin de faire un update de t2.val à partir de t3.val je n'ai aucun champ commun entre t2 et t3 t1.id et t2.id sont communs t1.ref et t3.ref sont communs
Ca fait 5 heures que je suis sur ce pb d'update et je ne vois plus rien, alors si qqun peut rallumer la lumière :-) Merci
PS : c'est sous mysql mais le principe reste certainement vrai quel que soit le sgbd.
Sous postgresql tu peux faire un update from :
update t2 set val = t3.val from t1, t3 where t1.id = t2.id and t1.ref = t3.ref;
Mais le update from est (de mémoire) une extension à la norme)
Sinon :
update t2 set val = (select val from t1, t3 where t1.id = t2.id and t1.ref = t3.ref) ;
Doit marcher sous reserve des unicités qui vont bien
groumph
On 1 oct, 19:18, ALain Montfranc wrote:
> Soit 3 tables avec chacune deux champs > t1. id, t1.ref > t2. id, t2.val > t3. ref, t3.val
> j'ai besoin de faire un update de t2.val à partir de t3.val > je n'ai aucun champ commun entre t2 et t3 > t1.id et t2.id sont communs > t1.ref et t3.ref sont communs
update t2 set val = (select val from t1, t3 where t1.id = t2.id and t1.ref = t3.ref) ;
Doit marcher sous reserve des unicités qui vont bien
Et bien je dis MERCI et bravo Mossieur Alain ! Ca marche nickel chrome.
Un autre Alain qui pataugeait dans la subquery ...
On 1 oct, 19:18, ALain Montfranc <x...@x.con> wrote:
> Soit 3 tables avec chacune deux champs
> t1. id, t1.ref
> t2. id, t2.val
> t3. ref, t3.val
> j'ai besoin de faire un update de t2.val à partir de t3.val
> je n'ai aucun champ commun entre t2 et t3
> t1.id et t2.id sont communs
> t1.ref et t3.ref sont communs
update t2 set val = (select val from t1, t3 where t1.id = t2.id and
t1.ref = t3.ref) ;
Doit marcher sous reserve des unicités qui vont bien
Et bien je dis MERCI et bravo Mossieur Alain !
Ca marche nickel chrome.
Un autre Alain qui pataugeait dans la subquery ...
> Soit 3 tables avec chacune deux champs > t1. id, t1.ref > t2. id, t2.val > t3. ref, t3.val
> j'ai besoin de faire un update de t2.val à partir de t3.val > je n'ai aucun champ commun entre t2 et t3 > t1.id et t2.id sont communs > t1.ref et t3.ref sont communs
update t2 set val = (select val from t1, t3 where t1.id = t2.id and t1.ref = t3.ref) ;
Doit marcher sous reserve des unicités qui vont bien
Et bien je dis MERCI et bravo Mossieur Alain ! Ca marche nickel chrome.
Un autre Alain qui pataugeait dans la subquery ...