Ver Mensaje Individual
  #29 (permalink)  
Antiguo 07/01/2013, 07:03
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta múltiple con INNER JOIN

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, 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.

Última edición por jurena; 07/01/2013 a las 07:08