2010-03-25 27 views

回答

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)的索引快速地工作。

+0

大,工作一种享受。现在我只需要掌握语法,这样我就可以编写更多这样的查询了! – DonutReply 2010-03-26 14:59:55

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 
相关问题