Bonjour à tous,
Mon niveau en SQL est moyen. Je suis confronté à un problème que je ne sais pas par quel bout prendre.
Je dispose d'une table qui contient deux champs : Les champs "CLeft" et "CRight".
Je cherche à regrouper les lignes de la table suivant un critère qui porte sur ces deux champs.
Pour décrire le critère, je vais exposer un exemple (ce sera plus simple) :
Exemple de table :
Ce jeu de valeurs génère trois groupes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 id CLeft CRight 1 11 12 2 11 12 3 11 12 4 12 11 5 12 11 6 22 23 7 22 23 8 23 22 9 11 46
- Le premier groupe contient les 5 lignes désignées par id=1,2,3,4,5.
- Le deuxième groupe contient les 3 lignes désignées par id=6,7,8.
- Le troisième groupe ciontient la ligne désignée par id=9.
Mon point de vue de développeur m'incite à écrire un scripte qui mélangera du code et du SQL. Cette solution n'est ni simple, ni performante.
Je pense qu'il existe une solution "100% SQL"... Éventuellement on pourrait créer des tables temporaires, et décomposer le traitement en plusieurs requêtes.
Je précise que j'utilise MySql.
Avez-vous des suggestions pour rendre ce traitement performant?
Merci à tous,
Denis
Partager