01/09/2010, 11:53
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses Puntos: 300 | |
Respuesta: Gooup By and Order. He creado una tabla usuarios con los campos id_usuario y nombre, para mostrarte que puedes traértelo.
SELECT u.nombre, t3.texto, t3.fecha from usuarios u INNER JOIN (select b.id_usuario,t2.texto, t2.fecha from busquedas b inner join(select t1.texto, t1.fecha FROM(SELECT texto,fecha from busquedas order by fecha desc)t1 GROUP BY t1.texto)t2 on b.texto=t2.texto AND b.fecha = t2.fecha GROUP BY texto ORDER BY t2.fecha DESC, t2.texto)t3 ON t3.id_usuario = u.id_usuario ORDER BY t3.fecha DESC LIMIT 10
En esta consulta primero muestro texto y fecha ordenados por fecha descendente (es t1); luego tomo texto y fecha agrupando por texto, con lo que las palabras repetidas me las elimina; uno con la tabla búsquedas por los campos texto y fecha para traerme el id_usuario, y luego agrupo por fecha, para el caso de que dos personas escriban la misma palabra en la misma fecha y esta sea de las últimas (ahí pierdo un dato, pues sólo podré mostrar el id de uno de ellos, pero eso no tendrá importancia); de ese modo puedo traerme el nombre del usuario; luego ordeno descendente por fecha y hago el limit. |