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

Mysqlは各グループの最後の行を選択します

    まず、列名は文字列リテラルではないため、一重引用符でエスケープしないでください。
    次に、c_idごとに最新の時刻を個別に取得するサブクエリを実行できます。 元のテーブルと結合して、他の列を取得します。

    SELECT  a.*
    FROM    message a
            INNER JOIN
            (
                SELECT  c_id, MAX(time) time
                FROM    message
                GROUP   BY c_id
            ) b ON a.c_id = b.c_id AND
                    a.time = b.time
    

    または

    SELECT  a.*
    FROM    message a
    WHERE   a.time =
            (
                SELECT  MAX(time) time
                FROM    message b
                WHERE   a.c_id = b.c_id
            ) 
    


    1. PHPのmysql_関数が非推奨になるのはなぜですか?

    2. 日時から日付mysqlに変換するクエリ

    3. Oracleの条件付きSUM

    4. タイムスタンプのフォーマット