Código sql:
Ver originalSELECT t1.categorias, SUM(t2.gastos) gasto FROM tabla1 t1 INNER JOIN tabla2 t2
USING (id_categorias) WHERE (YEAR(t2.fecha) = 2009 AND MONTH(t2.fecha) = 7)
GROUP BY t2.id_categorias
No lo he probado.
Edito para corregir y usar el USING como huestos52