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

时间:2010-03-25 17:31:23

标签: sql mysql

基本上,如果我有一个包含列的mysql表:id,type,content,version。

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

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

这是可能的还是我需要为每种类型单独进行查询?

干杯

2 个答案:

答案 0 :(得分:1)

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)上创建一个索引,以便快速工作。

答案 1 :(得分:1)

尝试:

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