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

Seleccionar valor maximo entre registros repetidos

Estas en el tema de Seleccionar valor maximo entre registros repetidos en el foro de Mysql en Foros del Web. Buenas a todos. Mi caso es el siguiente. Poseo una tabla con una serie de nombres de usuario con una caracteristica especial. En otra tabla ...
  #1 (permalink)  
Antiguo 06/08/2012, 09:39
 
Fecha de Ingreso: agosto-2012
Mensajes: 14
Antigüedad: 12 años, 3 meses
Puntos: 0
Seleccionar valor maximo entre registros repetidos

Buenas a todos. Mi caso es el siguiente. Poseo una tabla con una serie de nombres de usuario con una caracteristica especial.
En otra tabla poseo un registro de conexiones donde se registra nombre de usuario, ip de conexion y hora de conexión.

El objetivo es obtener la ULTIMA IP con la que se conecto cada usuario "especial".

LLevo unos dias dandole vueltas y no soy capaz de ponerlo en pie.

Lo que llevo de momento es algo asi


Cita:
SELECT DISTINCT username, IP
FROM tabla1
RIGHT JOIN especiales ON tabla1.username = especiales.user
GROUP BY username
El problema viene al poner la clausula para que sea la ultima conexión (el mayor valor del campo StartTime). ¿Alguna idea? Gracias por adelantado.
  #2 (permalink)  
Antiguo 06/08/2012, 09:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Seleccionar valor maximo entre registros repetidos

Cerquita:
Código MySQL:
Ver original
  1. SELECT username, IP
  2.     (SELECT username, IP, MAX(StartTime) StartTime
  3.     FROM tabla1 t1 INNER JOIN especiales E ON t1.username = E.user
  4.     GROUP BY username) T2;
Si en la segunda tabla aparecen usernames que están en la primera, no tiene sentido usar RIGHT JOIN.
Y si lo que necesitas es buscar la última entrada, debes buscar la fecha y hora máximas (MAX()), agrupando por user.

RIGHT JOIN se usa para otro tipo de búsquedas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/08/2012, 10:15
 
Fecha de Ingreso: agosto-2012
Mensajes: 14
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Seleccionar valor maximo entre registros repetidos

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Cerquita:
Código MySQL:
Ver original
  1. SELECT username, IP
  2.     (SELECT username, IP, MAX(StartTime) StartTime
  3.     FROM tabla1 t1 INNER JOIN especiales E ON t1.username = E.user
  4.     GROUP BY username) T2;
Si en la segunda tabla aparecen usernames que están en la primera, no tiene sentido usar RIGHT JOIN.
Y si lo que necesitas es buscar la última entrada, debes buscar la fecha y hora máximas (MAX()), agrupando por user.

RIGHT JOIN se usa para otro tipo de búsquedas.

Gracias por la temprana respuesta. El resultado de esta consulta es del total de entradas en especiales, por lo tanto bien. Pero la IP no es la de la ultima conexión, sino que sigue arrojando la primera que lee (es decir, la conexion mas antigua) todo lo contrario a lo que deseo.

Gracias.
  #4 (permalink)  
Antiguo 06/08/2012, 10:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Seleccionar valor maximo entre registros repetidos

Es un comportamiento particular de MySQL.
Código MySQL:
Ver original
  1. SELECT username, IP
  2.     (SELECT username, IP, MAX(StartTime) StartTime
  3.     FROM tabla1 t1 INNER JOIN especiales E ON t1.username = E.user
  4.     ORDER BY username ASC, StartTime DESC) T2;
  5. GROUP BY username;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/08/2012, 10:50
 
Fecha de Ingreso: agosto-2012
Mensajes: 14
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Seleccionar valor maximo entre registros repetidos

Perfecto, trabajando! Gracias por tu ayuda
  #6 (permalink)  
Antiguo 06/08/2012, 11:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Seleccionar valor maximo entre registros repetidos

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: join, maximo, registros, repetidos, select, tabla, campos
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 16:15.