Vous pouvez y parvenir en utilisant le MAX
fonction de groupe. J'ai un peu nettoyé la requête, mais fondamentalement, cela devrait conserver la même logique que vous aviez auparavant tout en étant légèrement plus optimisable. Modifiez simplement a.date_time pour le champ date-heure de votre table.
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;
Cela triera les enregistrements par date/heure de dernière visite et renverra les 12 derniers.