TAL COMO tu presentaste tus tablas una óptima query en mysql será:
Código MySQL:
Ver originalselect s.subcategoria_id Subcategoria
, P.producto_id Producto
, f.nombre Fabricante
, COUNT(*) NumeroProductos
from subcategoria S
left join producto P
on s.producto_id
=p.producto_id
left join fabricante F
on p.id_fabricante
=f.id_fabricante
where s.subcategoria_id
=141
La probé y sí funciona como tu lo pides. La parte donde dice 'group by f.nombre' permite que te presente en orden alfabético según el nombre dle fabricante, si pusieras 'group by f.id_fabricante' te presentaría lo mismo, pero en orden alfabético según la llave primaria del fabricante. Por cierto, en la tabla que muestras y que tiene de nombre PRODUCTOS asumo que la columna 'fabricante' realmente debería ser 'id_fabricante' eso sería lo correcto.
Éxitos y regale un puntito por el amor de Dios