Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Máximo registro con más datos (NO es lo típico)

Estas en el tema de Máximo registro con más datos (NO es lo típico) en el foro de Mysql en Foros del Web. Bueno, la verdad que lo tengo "solucionado", pero creo que no es la mejor opción y busco hacer todo (si es que posible) de una ...
  #1 (permalink)  
Antiguo 07/09/2010, 19:41
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 3 meses
Puntos: 3
Máximo registro con más datos (NO es lo típico)

Bueno, la verdad que lo tengo "solucionado", pero creo que no es la mejor opción y busco hacer todo (si es que posible) de una forma más eficiente.

Este es el panorama (sólo un ejemplo de lo real):

1. Mi tabla tiene 7 campos

2. id, nombre, apellido, fecha, campoX, campoY, puntaje

3. Necesito obtener campoX y campoY pero cuando el puntaje es máximo, sumándole a la condición que el id sean iguales a lo buscado.


Lo solucioné de la siguiente forma, pero no me tinca "bonito":

Código:
SELECT campoX, campoY
FROM tabla
WHERE id = [id_que_recibo_desde_php]
AND puntaje = (SELECT MAX(puntaje) FROM ranking WHERE id = [id_que_recibo_desde_php])
¿Existe una forma más elegante de hacer, por ejemplo, en una misma consulta o con un SELECT anidado más decente?

__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #2 (permalink)  
Antiguo 07/09/2010, 23:59
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Máximo registro con más datos (NO es lo típico)

Hola
bueno, pregunto algo, intentaste esto?
Código MySQL:
Ver original
  1. SELECT MAX(puntaje), campoX, campoY FROM tabla WHERE id = elquerecibes
si la respuesta es true, y no te funcionó, entonces como lo tienes (subconsulta) esta bien
si es false, intenta eso y si no te funciona, dejalo como lo tienes
tal vez alguien tenga otra idea
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 09/09/2010, 12:20
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: Máximo registro con más datos (NO es lo típico)

Cita:
Iniciado por mortiprogramador Ver Mensaje
Hola
bueno, pregunto algo, intentaste esto?
Código MySQL:
Ver original
  1. SELECT MAX(puntaje), campoX, campoY FROM tabla WHERE id = elquerecibes
si la respuesta es true, y no te funcionó, entonces como lo tienes (subconsulta) esta bien
si es false, intenta eso y si no te funciona, dejalo como lo tienes
tal vez alguien tenga otra idea
saludos

Siii, pero la función MAX requiere agrupar el resultado de registros, entonces espera que yo agrupe por campoX, campoY, pero estos son valores distintos, es imposible agrupar por estos (MySQL obviamente tira error de sintaxis).
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #4 (permalink)  
Antiguo 09/09/2010, 12:36
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Máximo registro con más datos (NO es lo típico)

uhm, y ya probaste con un procedimiento dentro de mysql como tal?
pero vendría siendo lo mismo que tienes en php basicamente...
bueno, suerte con eso
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:55.