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

特定の列の最新のエントリを選択するMySQLステートメント

    • 派生テーブルで、すべてのtype_idの最大バージョン値を取得します
    • メインテーブルに戻って、対応する行を取得します。

    次のことを試してください:

    SELECT e.* 
    FROM 
    example1 AS e 
    JOIN 
    (
      SELECT type_id, 
             MAX(version) AS maximum_version
      FROM example1 
      WHERE class_id = 10
      GROUP BY type_id 
    ) AS dt ON dt.type_id = e.type_id AND 
               dt.maximum_version = e.version 
    WHERE e.class_id = 10
    

    結果

    | id  | version | text  | class_id | type_id |
    | --- | ------- | ----- | -------- | ------- |
    | 1   | 1       | text1 | 10       | 1       |
    | 2   | 1       | text2 | 10       | 2       |
    | 4   | 1       | test4 | 10       | 4       |
    | 9   | 3       | last  | 10       | 3       |
    | 11  | 3       | rrrr  | 10       | 5       |
    

    DBフィドルで表示




    1. Oracleからmysqlにデータをインポートします

    2. Ajaxを使用してDIV内のMySQLデータをリロードします

    3. mysqlはストアドプロシージャの外部でどのように宣言しますか?

    4. java.sql.SQLException:列インデックスが範囲外、0 <1