Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2012, 12:34
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Multiples tablas en una sola consulta

Saludos,

Tengo varias tablas de las cuales 3 son las que quiero realizar la consulta. Una contiene los campos de selección (los dropdown de la aplicación), otra donde se inserta los datos, en ella inserto el id de la tabla que tiene los valores de los dropdown y otra donde están los usuarios. Quiero desarrollar, en un solo query, unos reportes que indique por usuario cuantos de la tabla que contiene los valores de los dropdown reportó. Ejemplo

Si en la tabla dropdown tengo los siguientes valores

Código MySQL:
Ver original
  1. 1, foo
  2. 2, bar
  3. 3, baz
  4. 4, bat

Me debe mostrar en el reporte
Código MySQL:
Ver original
  1. foo, 3, pepe
  2. bar, 0, pepe
  3. baz, 4, pepe
  4. bat, 0, pepe

Pero al hacer la consulta me muestra solo aquellos que tiene datos. Es decir me trae esto solamente
Código MySQL:
Ver original
  1. foo, 3, pepe
  2. baz, 4, pepe

Ignorando los datos que no tienen reportes. La consulta que preparé es algo así
Código MySQL:
Ver original
  1. SELECT d.dropdown_name, COUNT(*) counter, u.name
  2. FROM dropdown d LEFT JOIN reports r ON r.dropdown_id = d.dropdown_id
  3.                 INNER JOIN users u ON u.users_id = r.created_by
  4. WHERE DATE(r.created_datetime) = '2012-11-01' AND r.created_by = '1'
  5. GROUP BY d.dropdown_id

Yo ya lo tengo hecho en multiples consultas, solo estoy verificando si se puede lograr en una sola (me imagino que sí). Llevo varios días dando vuelta a ver si lo logro pero se me escapa alguna lógica que no doy (si es que la hay, claro está). El problema con la multiple consulta, es que son tantos datos, muchos usuarios y muchos datos en la tabla de dropdown que con 30 usuarios nada más se tarda aproximadamente 1 minuto. Esto ya no es culpa de mysql, sino de que tengo que estar abriendo conexión de base de datos por cada dropdown_id, luego por cada fecha y luego por cada usuario. Por eso pregunto si hay forma de lograrlo en una sola para así solo abrir por cada usuario y fecha.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos