le 10/03/2008 à 01:31
Sammuel
Salut,
Désolé de vous déranger avec mes problèmes de requêtes, mais je n'arrive pas à en faire fonctionner une qui peut paraître toute simple ! Et j'aurais besoin de votre aide pour comprendre pourquoi cela ne veut pas fonctionner !
Ma BDD test se trouve ici :
http://www.lephpfacile.com/wall/wall-1520.php
... avec quelques enregistrements.
Quelques précisions :
La table categorie 3 liste toutes les sous catégories de la catégorie 2.
La table categorie 2 liste toutes les sous catégories de la catégorie 1.
La table categorie 1 liste toutes les catégories générales.
Chaque enregistrement de la categorie 2 appartient obligatoirement à une (et une seule) categorie 1.
Chaque enregistrement de la categorie 3 appartient obligatoirement à une (et une seule) categorie 2. Mais un enregistrement de la categorie_2 n'a pas forcément de lien avec la categorie_3 ! Donc un enregistrement de la categorie_2 peut ne pas avoir de sous catégorie (categorie_3).
Un article appartient obligatoirement à une categorie 2 et peut appartenir à une categorie 3.
Un article ayant un status égal à 0 signifie qu'il est activé. Si il est égal à 1, c'est qu'il est désactivé et qu'il ne sera pas pris en compte, afficher sur le net.
Ma requête actuelle... qui ne fonctionne pas :
J'ai essayé de m'inspirer de la requete de LupusMic qu'il m'a proposé dans mon précédent post, mais cela ne veut pas fonctionner.
J'ai l'impression que MYSQL n'arrive pas à faire le lien entre les tables !
Merci pour votre aide
Désolé de vous déranger avec mes problèmes de requêtes, mais je n'arrive pas à en faire fonctionner une qui peut paraître toute simple ! Et j'aurais besoin de votre aide pour comprendre pourquoi cela ne veut pas fonctionner !
Ma BDD test se trouve ici :
http://www.lephpfacile.com/wall/wall-1520.php
... avec quelques enregistrements.
Quelques précisions :
La table categorie 3 liste toutes les sous catégories de la catégorie 2.
La table categorie 2 liste toutes les sous catégories de la catégorie 1.
La table categorie 1 liste toutes les catégories générales.
Chaque enregistrement de la categorie 2 appartient obligatoirement à une (et une seule) categorie 1.
Chaque enregistrement de la categorie 3 appartient obligatoirement à une (et une seule) categorie 2. Mais un enregistrement de la categorie_2 n'a pas forcément de lien avec la categorie_3 ! Donc un enregistrement de la categorie_2 peut ne pas avoir de sous catégorie (categorie_3).
Un article appartient obligatoirement à une categorie 2 et peut appartenir à une categorie 3.
Un article ayant un status égal à 0 signifie qu'il est activé. Si il est égal à 1, c'est qu'il est désactivé et qu'il ne sera pas pris en compte, afficher sur le net.
Ma requête actuelle... qui ne fonctionne pas :
SELECT categorie_1.nom AS categorie_1_nom,categorie_2.nom AS categorie_2_nom,COUNT(article.id) AS total
FROM article
LEFT JOIN categorie_3 ON article.categorie_3_id
LEFT JOIN categorie_2 ON article.categorie_2_id
LEFT JOIN categorie_1 ON categorie_2.categorie_1_id
WHERE article.status = '0'
GROUP BY categorie_1,categorie_2,categorie_3
ORDER BY categorie_1,categorie_2,categorie_3 ASC
J'ai essayé de m'inspirer de la requete de LupusMic qu'il m'a proposé dans mon précédent post, mais cela ne veut pas fonctionner.
J'ai l'impression que MYSQL n'arrive pas à faire le lien entre les tables !
Merci pour votre aide