Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL ordonne les publications par le commentaire le plus récent OU la dernière publication

Cela devrait le faire :

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 nous supposons qu'un commentaire est toujours plus ancien que la publication, nous pouvons simplifier :

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