Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/09/2010, 11:53
jurena
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.