Ver Mensaje Individual
  #13 (permalink)  
Antiguo 04/01/2013, 15:08
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
Rubén,
ahora te he entendido mejor y creo que podrás hacerlo en una sola consulta si como se ve un usuario solo puede tener un sponsor
Código MySQL:
Ver original
  1. sim.id_usuario, usu.nombre, usu.apellidos,
  2. SUM(sim.importe) totimporte,
  3. SUM(sim.referidos) totreferidos, usu.id_sponsor
  4. FROM simulador sim
  5. INNER JOIN usuarios usu ON sim.id_usuario = usu.id_usuario
  6. GROUP BY sim.id_usuario

Esto te daría el total para cada cliente, y el total de su sponsor, pues el total de cada cliente es el total de su sponsor: solo tiene uno.
Gracias de nuevo por tu respuesta jurena,

Por lo que veo, no consigo explicarme, la verdad es que me resulta difícil de plantear, no sé exactamente como explicarlo, a ver si así...

No necesito los totales, lo que necesito son los datos que planteo en la consulta del primer post:

Código MySQL:
Ver original
  1. SELECT  usu.id,
  2.         usu.nombre,
  3.         usu.apellidos,
  4.         usu.id_sponsor,
  5.         sp.id_usuario AS sim_sp,
  6.         usu.codigo,
  7.         sim.id_usuario,
  8.         sim.importe,
  9.         sp.importe AS sp_importe,
  10.         sim.referidos,
  11.         sp.referidos AS sp_referidos
  12. FROM usuarios AS usu
  13. INNER JOIN simulador AS sim ON (usu.id = sim.id_usuario)
  14. INNER JOIN simulador AS sp ON (sp.id_usuario = usu.id_sponsor)
  15. GROUP BY usu.id
  16. ORDER BY usu.id ASC

El tema es que para relacionar el usuario con el sponsor debo hacerlo a través de la tabla usuarios que es donde tengo el id_sponsor en el registro del usuario.

Teóricamente esto se puede almacenar en un array donde array['importe'] será el importe del usuario y array['sp_importe'] será el importe del sponsor, lo mismo con los referidos. Aquí es donde está mi duda, no sé si esta consulta es correcta para obtener estos datos de esta forma.

Yo creo que no porque no consigo el resultado que debería obtener, por eso es que pido ayuda a alguien que me eche una mano para determinar cuál debe ser la buena.

Muchas gracias de nuevo.

.