Je souhaite récupérer toutes les catégories enfants avec une catégorie parent donnée ET je souhaite associer la table de mes produits à ce résultat. Le résultat devrait être un fil d'Ariane où un utilisateur pourrait cliquer sur une catégorie parente et récupérer tous les produits de cette catégorie avec les catégories enfants. Si un utilisateur clique sur «Musique», le résultat devrait contenir tous les produits des catégories «Musique» «Lecteur MP3» et «Flash».Récupérer toutes les catégories enfants de la table des produits imbriqués et des produits jointes
J'utilise un ensemble imbriqué mais je trouve qu'il est vraiment difficile de le gérer avec des requêtes compliquées.
Ma base de données ressemble que:
category_table: ID/Nom/LFT/rgt products_table: ID/Titre/Description/pic/category_id/...
Ma requête ressemble à ceci:
$result=mysql_query('SELECT *, node.id, node.name
FROM category AS node,
category AS parent,
category AS sub_parent,
(
SELECT node.name
FROM category AS node,
category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.id = 23
GROUP BY node.name
ORDER BY node.lft
)AS sub_tree JOIN products ON products.id = id
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
AND sub_parent.name = sub_tree.name
GROUP BY node.name
ORDER BY node.lft;') or die(mysql_error());
Mais cela me donne l'erreur "# 1104 - le SELECT examinerait plus de lignes max_join_size, vérifiez votre WHERE et utilisez SET SQL_BIG_SELECTS = 1 ou SET max_join_size = # si le SELECT est correct". Je ne comprends pas.
si vous pouvez faire le changement de DB, je suggère l'utilisation « Fil d'Ariane » champ dans le tableau de la catégorie, et la virgule magasin valeur seperated de tous les parents dans ce domaine, votre recherche sera relativement facile et augmenter les performances est ajouté avantage. –