sql >> Database teknologi >  >> RDS >> Mysql

MySQL bestil indlæg efter seneste kommentar ELLER sidst opslået

Dette burde gøre det:

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

Hvis vi antager, at en kommentar altid er ældre end opslaget, kan vi forenkle:

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



  1. MySQL 8.0 - Klienten understøtter ikke godkendelsesprotokol anmodet af serveren; overveje at opgradere MySQL-klienten

  2. tom streng i orakel

  3. Korrekt måde at opsætte MYSQL-database til relaterede tagsøgninger?

  4. Kan du VÆLGE alt, undtagen 1 eller 2 felter, uden forfatterkrampe?