代码之家  ›  专栏  ›  技术社区  ›  DonutReply

从MySQL表中检索和输入所有“类型”,但只检索每个“类型”的最新条目

  •  2
  • DonutReply  · 技术社区  · 14 年前

    将有多个相同类型的条目。版本是一个数字,它随着某一类型的每个新条目而递增。

    我希望能够通过一个查询获得所有类型的每个类型的最新条目。

    干杯

    2 回复  |  直到 14 年前
        1
  •  1
  •   Quassnoi    14 年前
    SELECT  mi.*
    FROM    (
            SELECT  DISTINCT type
            FROM    mytable
            ) md
    JOIN    mytable mi
    ON      mi.id = 
            (
            SELECT  mo.id
            FROM    mytable mo
            WHERE   mo.type = md.type
            ORDER BY
                    mo.type DESC, mo.version DESC, mo.id DESC
            LIMIT 1
            )
    

    在上创建索引 (type, version, id)

        2
  •  1
  •   KM.    14 年前

    SELECT
        y.*
        FROM YourTable y
            INNER JOIN (SELECT
                            Type,MAX(Version) AS MaxVersion
                            FROM YourTable
                            GROUP BY Type
                       ) dt ON y.Type=dt.Type AND y.Version=dt.Version