supprimer enregistrements qui correspondent à une valeur max

Eléphanteau du PHP | 14 Messages

07 juin 2014, 11:23

Bonjour,
J'ai une table t1 ayant les champs nb,col0, col1,col12,col3 (col0, col1,col12,col3) est une clé primaire et une table t2 avec la structure col0, cle,col1,col12,col3 et je veux faire la chose suivante
Supprimer tous les enregistrements de T2 qui ont la combinaison col0, col1,col12,col3 identique à celle de T1 avec le champ nb à sa valeur maximale.
Par exemple si dans T1 on a

Code : Tout sélectionner

1 120 0,0052 0,0035 0,0076 8 120 0,0102 0,005 0,007 1 122 0,0052 0,0035 0,0076 4 122 0,0102 0,005 0,007 1 123 0,0052 99 0,0076 3 123 0,0102 0,005 0,007 1 124 0,0052 0,0035 0,0076 2 124 0,0102 0,005 0,007 1 124 0,09653 0,0391 0,066 1 124 0,123729 0,1495 0,0885
les enregistrements

Code : Tout sélectionner

8 120 0,0102 0,005 0,007 4 122 0,0102 0,005 0,007 3 123 0,0102 0,005 0,007 2 124 0,0102 0,005 0,007
ont le champ nb maximal, je veux supprimer les champs correspondant dans T2 cad:


Code : Tout sélectionner

120 0,0102 0,005 0,007 122 0,0102 0,005 0,007 123 0,0102 0,005 0,007 124 0,0102 0,005 0,007
Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 juin 2014, 22:19

Salut,

Sur le principe c'est simple il te faut sélectionner la pk pour la valeur.
Donc select les,colonnes from t1 where nb = (select max(nb) from t1)
A partir de la tu peux faire ton delete.

Au pire un delete avec 4 sub select fera l'affaire.

@+
Il en faut peu pour être heureux ......