sql >> Base de Datos >  >> RDS >> Mysql

MySQL ordena las publicaciones por el comentario más reciente O por último publicado

Esto debería hacerlo:

SELECT p.id
FROM post p
    LEFT JOIN comment c on c.post_id = p.id
GROUP BY p.id
ORDER BY COALESCE(GREATEST(p.created, MAX(c.created)), p.created) DESC

Si asumimos que un comentario siempre es más antiguo que la publicación, podemos simplificar:

SELECT p.id
FROM post p
    LEFT JOIN comment c on c.post_id = p.id
GROUP BY p.id
ORDER BY COALESCE(MAX(c.created), p.created) DESC