Ver Mensaje Individual
  #17 (permalink)  
Antiguo 17/09/2012, 11:08
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: 17 años, 4 meses
Puntos: 2658
Respuesta: Select para 3 tablas.

OK. Entonces en ese caso creo que no vas a poder hacer la consulta optimizada...
Hay tres soluciones:
1) Hacer un GROUP BY final de modo que elimine las duplicidades de datos que se acumulan en los INNER JOIN, horrible idea, porque tanto el ORDER BY como el GROUPO BY son asesinos de performance.

2) Manejarlo por medio de un stored procedure, de modo que genere una tabla de tipo temporary que acumule los datos de tres consultas secuenciales. La idea es interesante, pero requiere cierta práctica y conocimiento de los SP.

3) Hacer las consultas separadamente e integrar los resultados de forma programática (en la aplicación).
A nivel de performance, es posible que la tercera opción sea bastante buena idea... pese a que no me gusta hacerlo de esa forma.

Lo que seguro no vas a poder hacerlo es en una única consulta, al menos no del modo que la planteas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)