Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/09/2013, 12:22
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta a dos tablas en un query se queda en un loop

El orden de ejecución es:
1) FROM.
2) WHERE
3) GROUP BY
4) LIMIT (es lo último)

En este caso el problema es saber cuántos registros está devolviendo la consulta, y para eso es mejor hacer simplemente un EXPLAIN. Eso nos puede dar una idea de qué está pasando:
Código MySQL:
Ver original
  1.     FROM foo f LEFT JOIN bar b ON b.foo_id = f.foo_id
  2.    WHERE (   (b.created_datetime BETWEEN '2013-08-05' AND '2013-08-06')
  3.           OR (f.created_datetime BETWEEN '2013-08-05' AND '2013-08-06')
  4.          )
  5. GROUP BY f.foo_id;
Aún así, yo buscaría probar:
Código MySQL:
Ver original
  1.     (SELECT   *
  2.        FROM foo
  3.       WHERE created_datetime BETWEEN '2013-08-05' AND '2013-08-06') f
  4.      LEFT JOIN  
  5.      (SELECT   *
  6.        FROM bar
  7.       WHERE created_datetime BETWEEN '2013-08-05' AND '2013-08-06') b
  8.       ON f.foo_id = b.foo_id
  9. GROUP BY f.foo_id;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)