J'ai une table de catégories configurée comme so [id, name, parent_id] et une table d'éléments [id, name, category_id, visible]. Ce que j'essaye de faire est de créer une requête qui retournera tous les identifiants de toutes les catégories non vides, non vide étant que lui ou l'un de ses enfants a au moins un élément qui lui appartient. Quel serait le meilleur moyen de le faire dans MySQL?Recherche de toutes les catégories non vides dans un arbre
modifier
SELECT category_id DISTINCT Articles
Cela fonctionne pour les catégories contenant des articles, mais je dois aussi les catégories de parents de tous les élément contenant catégories. Cette requête sera utilisée comme sous-requête avec d'autres filtres.
Haut Niveau Catégorie
-> Deuxième niveau Catégorie
-> Troisième niveau Catégorie
---> Article 1
---> Article 2
Le vrai problème est une requête récursive. Votre réponse ne renvoie pas les catégories dont les sous-catégories contiennent des éléments. – bbadour
Oh, vous avez raison. Cependant, tout en retournant leurs parents pourrait être fait, renvoyer tous les ancêtres n'est pas faisable avec une requête. – Mewp
J'ai mis à jour ma réponse, en suggérant une autre méthode. – Mewp