Bạn có thể đạt được điều này bằng cách sử dụng MAX
chức năng nhóm. Tôi đã làm sạch truy vấn một chút nhưng về cơ bản điều này sẽ giữ lại cùng một logic mà bạn đã có trước đó trong khi có thể tối ưu hơn một chút. Chỉ cần thay đổi a.date_time cho bất kỳ trường ngày giờ nào trong bảng của bạn.
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;
Thao tác này sẽ sắp xếp các bản ghi theo ngày / giờ của lần truy cập gần đây nhất và trả về ngày muộn nhất 12.