Ver Mensaje Individual
  #22 (permalink)  
Antiguo 30/04/2014, 13:29
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Mega Consulta - Serían 252 conslutas - como optimizarlo

el_javi,
he borrado para sugerirte mi consulta
Código MySQL:
Ver original
  1. SELECT t_applications.APPLICATION_ID, t_applications.APPLICATION_name_spanish, t_materials.MATERIAL_ID, t_materials.MATERIAL_name_spanish, IFNULL( t1.total, 0 ) total
  2. FROM t_applications
  3. CROSS JOIN t_materials
  4.  
  5. SELECT COUNT( * ) total, pa.APPLICATION_ID, pm.MATERIAL_ID
  6. FROM t_products p
  7. INNER JOIN t_products_applications pa ON p.PRODUCT_ID = pa.PRODUCT_ID
  8. INNER JOIN t_products_materials pm ON p.PRODUCT_ID = pm.PRODUCT_ID
  9. GROUP BY pa.APPLICATION_ID, pm.MATERIAL_ID
  10. )t1 ON ( t_applications.APPLICATION_ID = t1.APPLICATION_ID
  11. AND t_materials.MATERIAL_ID = t1.MATERIAL_ID )
  12. ORDER BY t_applications.APPLICATION_name_spanish, t_materials.MATERIAL_name_spanish

He observado que en tu tabla una de las aplicaciones, arte, concretamente, aparece dos veces. Debes quitar una. Yo eliminé la que tiene índice 2 y dejé la 17, pues no parecía tener datos. Si no lo haces, aparecerá arte dos veces.

Comprueba si mi consulta te ofrece los resultados esperados y nos lo dices.

Última edición por jurena; 01/05/2014 a las 14:22 Razón: nueva propuesta