sql >> Databáze >  >> RDS >> Mysql

seskupit podle a seřadit podle v dotazu mysql

Toho lze dosáhnout pomocí MAX skupinová funkce. Dotaz jsem trochu vyčistil, ale v zásadě by si to mělo zachovat stejnou logiku, jakou jste měli předtím, a zároveň být o něco lépe optimalizovatelný. Jednoduše změňte a.date_time za jakékoli pole data a času ve vaší tabulce.

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;

Tím se záznamy seřadí podle data/času poslední návštěvy a vrátí se nejpozději 12.




  1. Jak naplnit databázi pouze jednou před metodami @Test v jarním testu?

  2. Přístup k PostgreSQL serveru z LAN

  3. Má smysl více cizích klíčů?

  4. MySQL Spojení dvou ID tabulek pro vytváření výsledků z jedné tabulky do druhé