Ver Mensaje Individual
  #11 (permalink)  
Antiguo 04/01/2013, 10:35
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
rbczgc,
yo, sin haber leído con toda la atención que debiera los posts del hilo, me pregunto si, como creo, el problema es que estás usando como tabla de referencia para todas las personas y lo importante en lo que se refiere al sponsor es la tabla simulador, es decir, que sponsors son solo aquellos cuyo id_usuario aparece en la tabla simulador. Creo que podemos empezar con una consulta como esta y luego y perfilando lo que quieres. Así quizás podamos ayudarte mejor:
Observa esta consulta:
Código MySQL:
Ver original
  1. SELECT sim.id_usuario,
  2.    SUM(sim.importe) totimporte, SUM(sim.referidos) totreferidos
  3.  FROM simulador sim
  4.  INNER JOIN usuarios usu ON sim.id_usuario = usu.id_sponsor
  5.  GROUP BY sim.id_usuario

Esto te daría el id_usuario del sponsor y sus totales, pero dinos qué te faltaría y qué otro dato querrías obtener referido no al sponsor, sino al usuario o usuarios cuyo sponsor estamos buscando... Para el nombre y apellidos del sponsor tendremos que hacer otro inner join sobre la tabla usuarios con distinto alias. dinos si vamos bien
Gracias por tu respuesta, jurena,

El tema es que lo que necesito son los id's, nombres, apellidos, código, importe y referidos de todos los usuarios, a la vez, necesito el importe y los referidos del sponsor de cada uno, el sponsor se obtiene de la tabla usuarios mediante el campo id_sponsor, pero lo tengo que relacionar con los datos de la tabla simulador puesto que el importe y los referidos están en esta tabla.

En la tabla simulador están todos los id_usuario duplicados de los id de la tabla usuarios, es decir, cada id_usuario de la tabla simulador se corresponde con su id de la tabla usuarios.

La suma de los importes y los referidos debo hacerla mediante programación, pero, lógicamente no sé si la estoy haciendo bien, dado que no sé si con la consulta que tengo planteada estoy obteniendo los datos correctos.

Del sponsor no necesito el nombre y apellidos, solo el importe y los referidos.

A ver si soy capaz de poner un ejemplo y de paso igual hasta me aclaro yo:

Tabla usuarios (solo con los datos que necesitamos para ahorrar espacio)

_____________________________________
|id..|nombre|apellidos|codigo|id_sponsor|
------------------------------
|..1.|.Pepe...|.Gómez.....|..1001..|........-1..|
----------------------------
|..2.|.Juan...|.López.....|..1002..|.........1..|
----------------------------
|..3.|.Jorge..|.Pérez.....|..1003..|.........1..|
-----------------------------
|..4.|.Ángel..|.Aguirre...|..1004..|.........2..|
-----------------------------
|..5.|.Luis...|.Vázquez...|..1005..|.........2..|
-----------------------------
|..6.|.Jorge..|.Pérez.....|..1006..|.........2..|
-----------------------------
|..7.|.Ángel..|.Aguirre...|..1007..|.........2..|
-----------------------------

Tabla simulador

______________________________
|id_usuario|importe|referidos|cual|
----------------------
|.........1..|...500...|.....2.....|......|
-----------------------
|.........2..|..1000...|.....4.....|......|
---------------------
|.........3..|.....0...|.....0.....|......|
---------------------
|.........4..|.....0...|.....0.....|......|
---------------------
|.........5..|.....0...|.....0.....|......|
---------------------
|.........6..|.....0...|.....0.....|......|
---------------------
|.........7..|.....0...|.....0.....|......|
---------------------

Bien, de esto se desprendería que el usuario 1 tiene 2 referidos, por lo que el sponsor del usuario 2, tiene 2 referidos, dado que el sponsor del usuario 2 es el usuario 1.

El campo "cual" es simplemente para validar en la programación, por eso lo dejo vacío, para no liarla.

El tema es que con la consulta que tengo no sé si estoy obteniendo los datos del usuario o del sponsor ni en qué posición exacta del array obtengo cada dato para luego actualizarlo.

No se si se entenderá, si falta de explicar algo, me cuentas e intentaré hacerlo si es que sé cómo explicarlo.

Muchas gracias de nuevo.

.