muestra el último comentario que solo 1 comentario por usuario [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Seleccione los 3 registros más recientes donde los valores de una columna son distintos 8 respuestasTengo una tabla de comentarios normal:
| id | comment | date | user | post | status |
Quiero obtener mis 10 últimos comentarios con solo 1 comentario por usuario, quiero decir algo como esto:
Tengo estos datos:| id | comment | date | user | post | | 1 | text1 | 2016-04-01| 1 | 1 | | 2 | text2 | 2016-04-02| 2 | 1 | | 3 | text3 | 2016-04-03| 1 | 2 | | 4 | text4 | 2016-04-04| 4 | 3 | | 5 | text5 | 2016-04-04| 3 | 5 | | 6 | text6 | 2016-04-05| 2 | 4 | | 7 | text7 | 2016-04-07| 5 | 3 | | 8 | text8 | 2016-04-10| 4 | 9 | | 9 | text9 | 2016-04-11| 3 | 7 | | 10 | text10 | 2016-04-12| 5 | 8 |
y quiero obtener esto:| 10 | text10 | 2016-04-12| 5 | 8 | | 9 | text9 | 2016-04-11| 3 | 7 | | 8 | text8 | 2016-04-10| 4 | 9 | | 6 | text6 | 2016-04-05| 2 | 4 | | 3 | text3 | 2016-04-03| 1 | 2 |
Yo uso esta declaración SQL:
SELECT *
FROM `comments`
GROUP BY `user`
ORDER BY MAX(`id`) DESC
Esto obtiene comentarios con el orden correcto para el usuario pero el orden incorrecto para la fecha del comentario:| 7 | text7 | 2016-04-07| 5 | 3 | | 9 | text9 | 2016-04-11| 3 | 7 | | 4 | text4 | 2016-04-04| 4 | 3 | | 6 | text6 | 2016-04-05| 2 | 4 | | 1 | text1 | 2016-04-01| 1 | 1 |