[eside-ghost] problema con consulta SQL

halls frikihalls en gmail.com
Jue Feb 14 17:24:42 CET 2008


wop!

El día 14/02/08, Yuki (aka Rubén Gómez) <rugoli a bildua gmail.com> escribió:
>
> Si no me he liado no hace falta que pongas el group by ni el max
> (porque siempre puede haber un evento de ayer que sea más que hoy,
> ayer el último evento fue a las 12:20, pero hoy a las 10:14):
>
> SELECT usuarios.nombre, eventos.hora FROM eventos, usuarios WHERE
> usuarios.id = eventos.id_usuario.


no he entendido bien tu logica, pero esa consulta me muestra TODAS las
entradas de eventos, eso si haciendo corresponder nombre y evento... pero
necesito el ultimo... Por eso hacia el MAX, y el GROUP BY no tengo muy
claro, pero supongo ke es para hacer el maximo de cada grupito

Así, debería mostrar el último evento que aparece en la tabla eventos
> (por lo menos haciendo una prueba en mi postgresql me aparece la
> última línea de la tabla eventos).
>
> De todas maneras, si la hora fuese un datetime (hora y fecha), sería
> más fácil, ya que podrías añadir a la select algo como "order by hora
> DESC limit 1".
>
> Quizá lo haya entendido mal, pero creo que te has liado demasiado con
> el group by.


yo creo que lo que dices es asumiendo que el select solo iba a coger un
registro de cada caso, o sino no entiendo nada XD

En cualquier caso Purrio me acaba de solucionar la vida. Al final la
sentencia se ha quedado asi:

SELECT usuarios.id, usuarios.nombre, MAX(eventos.hora) FROM usuarios INNER
JOIN eventos ON usuarios.id = eventos.id_usuario GROUP BY usuarios.id,
usuarios.nombre

parece ser que al GROUP BY hay que especificarle cada campo de "usuarios"
que vayas a mostrar para que no te chille...

en fin, una mañana perdida XD pero al menos ahora se un poquito mas.

Eskerrik asko! :-)
-------------- hurrengo zatia --------------
Erantsitako HTML dokumentu bat ezabatu egin da...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20080214/94ee3736/attachment.htm


Más información sobre la lista de distribución eside-ghost