2017-08-21 1 views
0

J'ai implémenté la requête suivante qui liste toutes les catégories et donne le nombre de produits associés à chacun d'entre eux.Catégories Liste avec le nombre de produits associés

SELECT tm.term_id, tm.name, count(tm.name) as total_products 
FROM mg_term_taxonomy tx 
LEFT JOIN mg_terms tm 
ON tx.term_id=tm.term_id 
LEFT JOIN mg_term_relationships tr 
ON tr.term_taxonomy_id=tx.term_taxonomy_id 
WHERE tx.taxonomy='product_cat' 
GROUP BY tm.term_id 

Le problème est sur les catégories qui ont un produit associé. Dans ce cas, total_products compte comme 1 au lieu de 0. La question est de savoir comment obtenir 0 dans total_products si tr.object_id est NULL?

Répondre

1

Compter le champ que vous voulez comptiez:

SELECT tm.term_id, tm.name, count(tr.object_id) as total_products 
. . . 
+0

Ouiii, il est. Merci Gordon! – Alex