No tiene mucho sentido ese error, porque el caso cumple perfectamente con el estándar.
De todos modos hay una forma más optimizada para esa consulta y es:
Código sql:
Ver originalSELECT c.nombre
FROM clientes c INNER JOIN ventas v USING(cve_clientes)
WHERE MONTH(v.fecha) = 7;
que en el otro caso sería:
Código sql:
Ver originalSELECT c.nombre
FROM clientes c INNER JOIN ventas v USING(cve_clientes) INNER JOIN productos p USING(cve_producto)
WHERE MONTH(v.fecha) = 7 AND p.nombre = 'sabritas';
Hay que notar que MySQL no puede optimizar un filtro en el WHERE, pero si puede optimizar el FROM...