SELECT categories.*, COUNT(categoryID) AS kritCount
FROM categories AS categories
LEFT JOIN krits ON categories.id = categoryID
WHERE (krits.approved = '1')
GROUP BY categories.id
Así que esto funciona genial, excepto que no devuelve una categoría que tiene un recuento de krits 0 en la categoría.mySQL JOIN no devolverá resultados con 0 count
lo hará si me quite la instrucción WHERE pero necesito el DONDE sólo para seleccionar los krits donde el campo aprobado = 1
que funcionará siempre y cuando aprobado se define en la tabla como NOT NULL. De lo contrario, cualquier valor NULL en aprobado devolvería como falsos positivos en la consulta general. – Cfreak