2
基本上,如果我有一个MySQL表,列:id,类型,内容,版本。检索并输入所有“类型”,但只有来自MySQL表格的每个“类型”的最近条目
将有多个相同类型的条目。版本是一个数字,每增加一个特定类型的新条目就会增加。
我希望能够通过一个查询获取每种类型的最新条目。
这是可能的还是我需要为每种类型做单独的查询?
干杯
基本上,如果我有一个MySQL表,列:id,类型,内容,版本。检索并输入所有“类型”,但只有来自MySQL表格的每个“类型”的最近条目
将有多个相同类型的条目。版本是一个数字,每增加一个特定类型的新条目就会增加。
我希望能够通过一个查询获取每种类型的最新条目。
这是可能的还是我需要为每种类型做单独的查询?
干杯
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)
的索引快速地工作。
尝试:
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
大,工作一种享受。现在我只需要掌握语法,这样我就可以编写更多这样的查询了! – DonutReply 2010-03-26 14:59:55