sql >> Database >  >> RDS >> Mysql

groeperen op en bestellen op in mysql-query

U kunt dit bereiken met de MAX groepsfunctie. Ik heb de query een beetje opgeschoond, maar in wezen zou dit dezelfde logica moeten behouden die je eerder had, terwijl het iets beter te optimaliseren was. Verander gewoon a.date_time voor wat het datum-tijdveld in je tabel ook is.

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;

Hiermee worden de records gerangschikt op de datum/tijd van het laatste bezoek en worden de laatste 12 geretourneerd.




  1. PHP slaat wachtwoord op in cookie

  2. mysql2 gem kan niet compileren met MySQL 5.6.12 op OS X met Homebrew

  3. hoe het weergavevolgordeveld in php . te behouden

  4. Count(*) gebruiken vs num_rows