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

¿Cómo obtener la última entrada de cada usuario?

Estas en el tema de ¿Cómo obtener la última entrada de cada usuario? en el foro de Mysql en Foros del Web. Hola a todos, Necesito una query que me ordene los resultados por fecha, me agrupe por usuario y me saque la última entrada de cada ...
  #1 (permalink)  
Antiguo 05/09/2016, 03:14
 
Fecha de Ingreso: julio-2010
Mensajes: 298
Antigüedad: 13 años, 9 meses
Puntos: 8
¿Cómo obtener la última entrada de cada usuario?

Hola a todos,
Necesito una query que me ordene los resultados por fecha, me agrupe por usuario y me saque la última entrada de cada usuario.
Para que me ordene por fecha tengo la siguiente query:
Código MySQL:
Ver original
  1. SELECT t1.*, t2.*
  2. FROM t2, t1
  3. WHERE t1.userId = t2.t1UserId
  4. AND t2.Date >= '2015/01/01 00:00:00' AND t2.Date <= '2017/01/01 00:00:00'
  5. AND t2.t1UserId IN (usersIdList)
Y lo hace correctamente, me va ordenando por fecha y con las diferentes entradas que ha ido haciendo cada usuario.
Para que me saque la última entrada de cada usuario hago lo siguiente:
Código MySQL:
Ver original
  1. SELECT t.* FROM (
  2.     SELECT t1.*, t2.*
  3.     FROM t2, t1
  4.     WHERE t1.userId = t2.t1UserId
  5.     AND t2.Date >= '2015/01/01 00:00:00' AND t2.Date <= '2017/01/01 00:00:00'
  6.     AND t2.t1UserId IN (usersIdList)
  7.     ORDER BY t2.Date desc
  8. )  AS T
  9. GROUP BY t.Name
Pero en lugar de sacarme la última entrada de cada usuario, me saca la primera.
¿Alguien sabe a qué se debe? ¿Cómo puedo solucionarlo?

Muchas gracias

Última edición por gnzsoloyo; 05/09/2016 a las 13:33
  #2 (permalink)  
Antiguo 05/09/2016, 13:36
Avatar de 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: ¿Cómo obtener la última entrada de cada usuario?

Cita:
Pero en lugar de sacarme la última entrada de cada usuario, me saca la primera.
Y... todo dependerá, en principio, de dónde viene el campo "NAME" que está llegando desde la tabla derivada... y qué datos acompañan ese esquema.

Empieza por mostrarnos un resultado de esta query que usas en la tabla derivada:
Código SQL:
Ver original
  1. SELECT t1.*, t2.*
  2.     FROM t2, t1
  3.     WHERE t1.userId = t2.t1UserId
  4.     AND t2.DATE >= '2015/01/01 00:00:00' AND t2.DATE <= '2017/01/01 00:00:00'
  5.     AND t2.t1UserId IN (usersIdList)
  6.     ORDER BY t2.DATE DESC
porque si no vemos los datos reales, es difícil adivinar lo que pasa.
__________________
¿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: group-by, order-by
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 14:24.