unir dos tablas junto con el recuento de registros de la segunda tabla según la condición

Tengo las siguientes tablas:

Aquí estáSQLFIDDLE

categorías

+-----------+-------------+
|  column   |    type     |
+-----------+-------------+
| id        | int(11)     |
| name      | varchar(40) |
| unit      | varchar(50) |
| is_active | tinyint(1)  |
+-----------+-------------+

y

productos

+-------------+---------------+
|   column    |     type      |
+-------------+---------------+
| id          | int(11)       |
| category_id | int(11)       |
| name        | varchar(40)   |
| base_rate   | decimal(10,2) |
| is_active   | tinyint(1)    |
+-------------+---------------+

Quiero obtener una lista de categorías junto con el recuento de la cantidad de productos activos. Si no hay productos activos para una categoría, debería devolver 0.

Algo así como la tabla de abajo:

+----+--------+--------------+
| id |  name  | active_count |
+----+--------+--------------+
|  1 | Steel  |            1 |
|  2 | Cement |            2 |
+----+--------+--------------+

Se me ocurrió la siguiente consulta:

SELECT c.id, c.name, c.unit, COUNT(p.category_id) as active_count 
FROM `categories` c 
JOIN `products` p
    ON c.id = p.category_id
WHERE ( p.is_active = 1 )
GROUP BY p.category_id;

Esto arribala consulta solo funciona cuando hay al menos un producto activo en cada una de las categorías. Si no hay productos disponibles, debe regresaractive_count como0

Cómo puedo arreglar esto ?

Aquí estáSQLFIDDLE

Respuestas a la pregunta(1)

Su respuesta a la pregunta