Ver Mensaje Individual
  #8 (permalink)  
Antiguo 19/09/2013, 07:12
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ranking de lista de usuarios

Cita:
"Subquery return more than 1 result"
Eso significa simplemente que al menos una de las subconsultas está devolviendo más de un registro, y eso es tan simple como:
Código MySQL:
Ver original
  1.       (SELECT U.userId, U.nicename, MAX(H.points) points
  2.       FROM bp_users u INNER JOIN bp_historypoints h ON U.userId = H.userId
  3.       WHERE H.points > (SELECT MAX(H.points)
  4.                         FROM bp_users u INNER JOIN bp_historypoints h ON U.userId = H.userId
  5.                         WHERE H.userId = 21
  6.                         GROUP BY U.userId
  7.                         LIMIT 1)
  8.       GROUP BY U.userId
  9.       ORDER BY H.points DESC
  10.       LIMIT 3) T1
  11.       (SELECT U.userId, U.nicename , MAX(H.points) points
  12.       FROM bp_users u INNER JOIN bp_historypoints h ON U.userId = H.userId
  13.       WHERE H.userId = 21
  14.       GROUP BY U.userId
  15.       LIMIT 1) T2
  16.       (SELECT U.userId, U.nicename, MAX(H.points) points
  17.       FROM bp_users u INNER JOIN bp_historypoints h ON U.userId = H.userId
  18.       WHERE H.points < (SELECT MAX(H.points)
  19.                         FROM bp_users u INNER JOIN bp_historypoints h ON U.userId = H.userId
  20.                         WHERE H.userId = 21
  21.                         GROUP BY U.userId
  22.                         LIMIT 1)
  23.       GROUP BY U.userId
  24.       ORDER BY H.userId
  25.       LIMIT 2) T3;

Un consejo: Trata de no hacer códigos más complicados de lo necesario.
Si ya la query devuelve lo que necesitas, no tienes necesidad de implementarlo por medio de una sentencia preparada...
¿No te parece?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)