Partamos de dos detlles:
1) COUNT() cuenta los registros de una consulta que cumplan con la condición de no ser NULL.
Cuando pones COUNT(*) cuenta los registros devueltos, pero cuanto pones COUNT(campo), cuenta los registros donde "campo" no es NULL. No es lo mismo.
2) LEFT JOIN devuelve los todos registros de la primera tabla tengan o no coincidencia con los de la segunda. Por ello se dice que el orden de los factores en base de datos SI altera el producto.
En este caso, la sintaxis varía de acuerdo a lo que quieras consultar: ¿Las actividades contando clientes , o las actividades DE los clientes?
Su suponemos que no hay actividades sin clientes, en tu consulta el LEFT JOIN devolvería lo mismo que un INNER JOIN.
Si quieres clientes por actividad:
Código SQL:
Ver originalSELECT a.Activacion, a.Actividad, a.Url, a.NomActividad, COUNT(c1.Actividades) TotalC1, COUNT(c2.Actividades) TotalC2, SUM(COUNT(c1.Actividades) + COUNT(c2.Actividades)) total
FROM actividades a
LEFT JOIN clientes c1 ON a.Actividad = c1.Actividades
LEFT JOIN clientes c2 ON a.Actividad = c2.Actividades2
WHERE a.Activacion = 1
GROUP BY a.Actividad ASC
Mas o menos por acá...