Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Posts nach dem neuesten Kommentar ODER dem zuletzt geposteten Posten sortieren

Das sollte es tun:

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

Wenn wir davon ausgehen, dass ein Kommentar immer älter ist als der Beitrag, können wir vereinfachen:

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