un melange de DELETE SELECT IN COUNT HAVING COUNT
Je possede une table routings
Code:
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