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

Gruppieren nach und Sortieren nach in der MySQL-Abfrage

Dies erreichen Sie mit dem MAX Gruppenfunktion. Ich habe die Abfrage ein wenig aufgeräumt, aber im Grunde sollte die gleiche Logik beibehalten werden, die Sie zuvor hatten, während sie etwas optimierbarer ist. Ändern Sie einfach a.date_time für das Feld Datum/Uhrzeit in Ihrer Tabelle.

SELECT
    a.visitorid,
    MAX( a.date_time ) AS last_visit_date_time,
    b.onlinestatus,
    b.username,
    b.age,

FROM tbl_visitprofile a

INNER JOIN tbl_user b
    ON b.id = a.visitorid
    AND b.STATUS != '2'

LEFT JOIN tbl_pauseusers p
    ON p.user_id = a.visitorid

WHERE a.visitmemberid = '10'
    AND a.blockstatus = '0'
    AND p.user_id IS NULL

GROUP BY a.visitorid
ORDER BY last_visit_date_time DESC
LIMIT 0 , 12;

Dadurch werden die Datensätze nach Datum/Uhrzeit des letzten Besuchs sortiert und die letzten 12 zurückgegeben.