SELECT
category_id,
category_name,
category_archive,
category_sort,
category_description,
count(distinct product2category_product_id) as catProdCount
FROM cw_categories_primary
INNER JOIN cw_product_categories_primary
ON cw_product_categories_primary.product2category_category_id = cw_categories_primary.category_id
LEFT OUTER JOIN cw_products
ON cw_products.product_id = cw_product_categories_primary.product2category_product_id
LEFT OUTER JOIN cw_skus
ON cw_skus.sku_product_id = cw_products.product_id
WHERE NOT category_archive = 1
AND NOT cw_products.product_on_web = 0
AND NOT cw_products.product_archive = 1
AND NOT cw_skus.sku_on_web = 0
AND cw_skus.sku_stock > 0
AND NOT cw_categories_primary.category_nav = 0
GROUP BY
category_id,
category_name,
category_archive,
category_sort,
category_description
ORDER BY
category_sort,
category_name
SELECT secondary_id,
secondary_name,
secondary_archive,
secondary_sort,
secondary_description,
count(distinct product2secondary_product_id) as catProdCount
FROM cw_categories_secondary INNER JOIN cw_product_categories_secondary ON cw_product_categories_secondary.product2secondary_secondary_id = cw_categories_secondary.secondary_id
LEFT OUTER JOIN cw_products
ON cw_products.product_id = cw_product_categories_secondary.product2secondary_product_id
LEFT OUTER JOIN cw_skus
ON cw_skus.sku_product_id = cw_products.product_id
WHERE NOT secondary_archive = 1 AND NOT cw_products.product_on_web = 0
AND NOT cw_products.product_archive = 1
AND NOT cw_skus.sku_on_web = 0 AND cw_skus.sku_stock > 0
GROUP BY
secondary_id,
secondary_name,
secondary_archive,
secondary_sort,
secondary_description
ORDER BY
secondary_sort,
secondary_name