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

GROUP BYを使用して各グループの最新のレコードを取得するにはどうすればよいですか?

    最後のtimestampを見つける必要があります 各グループの値(サブクエリ)を作成し、このサブクエリをテーブルに結合します-

    SELECT t1.* FROM messages t1
      JOIN (SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id) t2
        ON t1.from_id = t2.from_id AND t1.timestamp = t2.timestamp;
    


    1. FOREIGN KEY制約によって参照されているため、テーブルを切り捨てることができませんか?

    2. SQLServerデータベースですべての外部キー制約を無効にする方法-SQLServer/TSQLチュートリアルパート77

    3. postgreSQLmysqloracleの違い

    4. SQLでHAVING句を使用する方法