sql >> データベース >  >> RDS >> Mysql

mysqlクエリでgroupbyおよびorderby

    これは、MAXを使用して実現できます グループ機能。クエリを少しクリーンアップしましたが、基本的に、これは以前と同じロジックを保持し、少し最適化できるはずです。テーブル内の日時フィールドに関係なく、a.date_timeを変更するだけです。

    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;
    

    これにより、最後の訪問の日時でレコードが並べ替えられ、最新の12が返されます。




    1. 外部キーと主キーのPostgresとインデックス

    2. SQLの行の挿入と挿入された自動インクリメントIDを別の列にコピーします

    3. MySQLルートパスワードのリセットが機能しない

    4. Oracle:結合を使用してテーブルからグループ内の重複を削除する