¿Si lo haces con INNER JOIN, perdiendo, claro, en la muestra los que no tienen datos en la tabla2, ganas algo de tiempo, no?
Código SQL:
Ver originalSELECT t1.ID, t1.DSC, IFNULL(t3.total,0) totalporID FROM tabla1 t1
INNER JOIN (SELECT t2.tabla1_id ID, COUNT(*) total FROM tabla2 t2 GROUP BY t2.tabla1.id)t3 ON t1.ID = t3.ID