Je possede une table routings
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 id_routing id_facture 1 104 2 112 3 112 4 126 5 128 6 129 7 129 8 129 9 146 10 146
Mon but est d'avoir pour chaque id_facture, une seule id_routing et la plus recente (soit la id_routing la plus grande)
et donc de supprimer tous les autres doublons. et garder ce qui est en gras
(SELECT_1) Je selectionne les id_facture qui ne sont pas unique :
SELECT id_facture FROM routings GROUP BY id_facture HAVING count(id_facture) > 1 ORDER by id_facture DESC
(SELECT_2) je selectionne les id_routing doublons :
SELECT id_routing FROM routings WHERE id_facture = (SELECT_1) ORDER by id_routing DESC LIMIT 1,100 (LIMIT 1, 100 ainsi je deselectionne la id_routing la plus grande)
je supprime les id_routing trouvé dans la selection avant
DELETE FROM routings WHERE id_routing IN (SELECT_2)
Est ce que vous pouvez m'aider à depatouiller tous cela en une seule commande mysql
Partager