Update Conditionnel Mysql

Update Conditionnel Mysql - SQL/NoSQL - Programmation

Marsh Posté le 29-01-2014 à 12:17:16    

Bonjour,
 
 
J'ai deux tables T1 et T2 ayant -à peu près-la même structure  
 
T1                      
clé,C1,C2,C3  
           
T2
  clé,C1,C2,C3  
 
les champs c1,c2 et C3 ont par défaut la valeur '555', mais peuvent contenir d'autres valeurs < 1
 
Pour parler des champs c1,c2 et C3 j'utilise  Ci  
 
Je dois donc parcourir T2 et T1  
Si je trouve t1.cle=t2.cle alors je mets les données à jour dans t1 de la manière suivante:
 

  • si (T2.Ci<> '555' et  T1.Ci='555' ) alors (update t1 set T1.Ci= T2.Ci)
  • Si (si (T2.Ci<> '555' et  T1.Ci<> '555') et (T2.Ci<T1.Ci)) alors (update t1 set T1.Ci= T2.Ci)


  • Enfin  je supprime dans T2 l'enregistrement correspondant à t2.cle avec lequel on a fait les updates précédents dans T1.


Ma question : quelle est la requête ou les requêtes  SQL pour effectuer cette tâche?
 
Merci infiniment


Message édité par maestro1303 le 29-01-2014 à 15:09:14
Reply

Marsh Posté le 29-01-2014 à 12:17:16   

Reply

Marsh Posté le 30-01-2014 à 08:05:27    

J attend tjs des nouvelles.

Reply

Marsh Posté le 30-01-2014 à 09:42:32    

tu as essayé :
Update t1 as a set a.c1 = (select      
case                                    
when cas1 then resultat1                
when cas2 then resultat2                
end                                    
from T2 as b where                      
 b.clé = a.clé)                        
where                                  
T1.cle in (select T2.cle from T2)...
pareil pour les champs suivants...
Pour le delete : cherches... :) c'est pas compliqué...
                                       

Reply

Marsh Posté le 30-01-2014 à 19:39:05    

Merci bien gpl73,
J'essaie ta proposition et je dis.
 
 
Merci infiniment

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed