Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/04/2013, 12:31
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Simplificar Consulta

Hola phyronx:

Y cómo es la estructura de tu tabla??? cómo sé cuando un jugador alcanza los 1000 puntos??? cómo contabilizas estos puntos???

Para obtener lo que quieres en realidad tienes muchas formas para hacerlo... depende mucho de la estructura de tu tabla, pero veamos un ejemplo para ver si te sirve, supongamos que tienes los siguientes datos:


Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+---------+--------+
  3. | id   | jugador | puntos |
  4. +------+---------+--------+
  5. |    1 | uno     |    999 |
  6. |    2 | dos     |   1000 |
  7. |    3 | tres    |   1010 |
  8. |    4 | cuatro  |    998 |
  9. |    5 | cinco   |   1001 |
  10. |    6 | seis    |   1011 |
  11. +------+---------+--------+
  12. 6 rows in set (0.01 sec)

Observa que el jugador 2 llegó a los 1000 puntos, para obtener a su contrincante, puedes hacerlo así:

Código MySQL:
Ver original
  1. mysql> SELECT T1.*,
  2.     -> ( SELECT jugador
  3.     ->   FROM tabla T2
  4.     ->   WHERE T2.puntos > T1.puntos
  5.     ->   ORDER BY puntos LIMIT 1) contrincante
  6.     -> FROM tabla T1
  7.     -> WHERE
  8.     -> T1.puntos = 1000;
  9. +------+---------+--------+--------------+
  10. | id   | jugador | puntos | contrincante |
  11. +------+---------+--------+--------------+
  12. |    2 | dos     |   1000 | cinco        |
  13. +------+---------+--------+--------------+
  14. 1 row in set (0.01 sec)

Observa que sólo obtengo el nombre del contrincante, no los puntos que tiene, pero si analizas los datos, verás que es el que está encima de su puntaje.

Esta es una forma para hacerlo, pero insisto que hay muchas otras, todo depende de tus datos.

saludos
Leo.