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

MySQLでGROUPBYを使用して最新の行を選択します

    グループごとの最大値 が必要です;基本的に、支払いテーブルをグループ化して最大レコードを識別し、結果をそれ自体と結合して他の列をフェッチします。

    SELECT users.*, payments.method, payments.id AS payment_id
    FROM   payments NATURAL JOIN (
      SELECT   user_id, MAX(id) AS id 
      FROM     payments
      GROUP BY user_id
    ) t RIGHT JOIN users ON users.id = t.user_id
    

    MAX(id)に注意してください 「最新のお支払い」ではない場合があります "、アプリケーションとスキーマによって異なります。通常は、"最新を判別することをお勧めします。 "TIMESTAMPに基づく AUTO_INCREMENTなどの合成識別子に基づくよりも 主キー列。



    1. PostgreSQLの単一引用符と二重引用符の違いは何ですか?

    2. Oracleトリガーで、行タイプ変数に新旧を割り当てることはできますか?

    3. NULL値でNOTIN選択

    4. Laravelの列をインクリメント