Ver Mensaje Individual
  #30 (permalink)  
Antiguo 07/01/2013, 08:14
rbczgz
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Consulta múltiple con INNER JOIN

Cita:
Iniciado por jurena Ver Mensaje
No sé que tipos de valores guardas en el cual para validar, y por eso no puedo ayudarte a mostrar una salida más conveniente
El campo es int(7), lo que guardo ahí es un valor númerico para comprobar si es par o impar y, en función de eso, ejecutar lo que corresponda.

Cita:
Iniciado por jurena Ver Mensaje
, pero para mostrarlo puedes hacerlo así:
Código MySQL:
Ver original
  1.        usu2.id,
  2.        usu2.nombre,
  3.        usu2.apellidos,
  4.        usu2.id_sponsor sim_sp,
  5.        usu2.codigo,
  6.        IFNULL(t1.impusu,0) importe,
  7.        IFNULL(t1.refusu,0) referidos,
  8.        IFNULL(SUM(t1.impsp),0) sp_importe,
  9.        IFNULL(SUM(t1.refsp),0) sp_referidos,
  10.        t1.cual
  11.  
  12.     FROM usuarios usu2 LEFT JOIN
  13.     ((SELECT usu.id idusuario,
  14.     IFNULL(sim.importe, 0 ) impusu,
  15.     IFNULL(sim.referidos, 0 ) refusu, '0' impsp, '0'refsp,
  16.     sim.cual
  17.     FROM simulador sim
  18.     INNER JOIN usuarios usu ON sim.id_usuario = usu.id
  19.     ORDER BY sim.id_usuario)
  20.     UNION ALL
  21.     (SELECT usu.id_sponsor, '0', '0', SUM( sim.importe ) , SUM( sim.referidos ), sim.cual
  22.     FROM simulador sim
  23.     INNER JOIN usuarios usu ON sim.id_usuario = usu.id
  24.     GROUP BY usu.id_sponsor
  25.     ORDER BY usu.id_sponsor))t1
  26.     ON usu2.id = t1.idusuario WHERE usu2.mostrar = 1 AND usu2.id > 0 GROUP BY usu2.id ORDER BY usu2.id

Verás NULL cuando no hay nada, es decir, relación. Al no saber qué tipo de datos guardas ahí, poco puedo ayudarte en la salida. Lo que sí tengo claro es que ese cual solo va referido a usuario y no quieres mostrar ningún cual de sponsor.
Cierto, solo va referido a usuario y no a sponsor.

Pero sigo teniendo un problema: no obtengo el dato correcto en sp_importe y sp_referidos, he probado a no sumar, dado que no debería tener que sumar los valores de diferentes registros pero tampoco me funciona...

Es decir, si yo ejecuto la consulta, para mostrar los resultados en pantalla fuera de PHPMyAdmin, la almaceno en un array, recorro ese array y, en función de los valores que van adquiriendo los diferentes campos, ejecuto un código u otro, los elementos del array, es decir, los campos, me muestran siempre los mismos valores, tanto sumando como sin sumar... es muy raro...

No termino de entender la consulta en sí, para mi es muy compleja, por eso no sé hacerle los cambios como el que te planteaba en el post anterior, pero, aparte de eso, yo creo que por lo que me dices, sí debería mostrar bien los valores, pero no es así y no sé por qué...

A ver, si yo, en la aplicación tengo el campo sp_importe referido al usuario id 3 y el sponsor de este usuario es el id 1, debería mostrarme el campo importe correspondiente al usuario id 1, pero me muestra otra cifra que no tiene nada que ver con lo que debería mostrar...

Esto es de locos, al final va a resulta que no se va a poder hacer y nos estamos rompiendo la cabeza para nada...

Pero, no sé por qué, tengo la certeza de que sí se puede, solo hace falta saber cómo, el problema es que yo no sé ese cómo

Solo espero que al final, después de tanta lata que te estoy dando, sirva de algo y lo consigamos...

Te agradezco mucho el tiempo que me estás dedicando para enseñarme, pero como buen maño, tengo la cabeza dura y me cuesta aprender... jejeje.

.