Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/12/2007, 11:09
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
Re: Consulta SQL lentisima

Estás haciendo varios productos cartesianos en la combinación de tablas. Esto multiplica inmensamente la cantidad de registros resultantes.
haz una serie de subconsultas centrales acotando los datos que necesitas reunir con los campos pivote entre cada subconsulta, y a esas subconsultas, con alias, realizales un inner join escalonado.

Concentrate en resolver el conjunto de datos por partes. Si intentas todo al mismo tiempo no podrás ver dónde se producen los problemas.
Por ejemplo:

1. Los resultados con los usuarios.
2. Las preguntas con las respuestas.
3. Los items con los cursos.

Luego recién el resultado 1 con el 2, y el (1,2) con el 3.

No intentes un INNER JOIN entre seis tablas simultáneamente. Para probar lo que digo, realiza un EXPLAIN de tu consulta y verás cuántos registros y tablas realmente están operando en memoria.