supprime tout sauf une ligne

supprime tout sauf une ligne - SQL/NoSQL - Programmation

Marsh Posté le 26-03-2008 à 20:06:30    

Je cherche un moyen de supprimer tout les états 'En cours' de chaque utilisateur sauf le premier inséré grace à la clé primaire id_trans
qui est 'auto incrémente' mais mysql refuse dans delete les clauses : order by et LIMIT
Comment faire ?
(par ex: id_trans :1,user_id:1,Etat:'En cours' /id_trans :2,user_id:1,Etat:'En cours' /id_trans :3,user_id:2,Etat:'En cours'  on supprime id_trans:2
Voici la requête refusée par mysql:
DELETE t FROM TLink AS t  
WHERE (
             (t.Etat='En cours')  
             AND  
            (t.id_trans Not In (select t1.id_trans  from TLink as t1  
                                     where (
                                                 (t.user_id=t1.user_id)  
                                                 and
                                                 (t1.Etat='En cours')  
                                                 order by t1.id_trans desc  
                                                 LIMIT 1
                                                )
                                     )
             )
          )

Reply

Marsh Posté le 26-03-2008 à 20:06:30   

Reply

Marsh Posté le 27-03-2008 à 16:27:11    

Essaie de remplacer
 
Not In (select t1.id_trans  from TLink as t1  
                                     where (  
                                                 (t.user_id=t1.user_id)  
                                                 and  
                                                 (t1.Etat='En cours')  
                                                 order by t1.id_trans desc  
                                                 LIMIT 1  
                                                )  
                                     )  
 
par
 
Not In (select max(t1.id_trans)  from TLink as t1  
                                     where (  
                                                 (t.user_id=t1.user_id)  
                                                 and  
                                                 (t1.Etat='En cours')  
                                                 )  
                                     )  
 


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

Sujets relatifs:

Leave a Replay

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