Mysql查看一些字符串的最后版本

时间:2013-05-20 14:08:25

标签: mysql sql view

在我的数据库中,我有一个表,其中包含某些已翻译字符串的所有版本。我想创建一个视图,返回一个包含每个字符串的所有最新版本的表。

我想出了以下解决方案。

Table Strings
idString, Date, String, Chapter

这些是表格的属性

View StringOrdered
Create  View StringOrdered(idString, Date, String, Chapter) AS
SELECT * FROM Strings ORDER BY Date DESC

这是支持观点。

View LastVersion
CREATE VIEW LastVersion (idString, Date, String, Chapter) AS
SELECT * FROM StringOrdered GROUP BY Chapter

有没有办法在没有支持视图的情况下获得它?

1 个答案:

答案 0 :(得分:1)

根据数据的排序,您依赖group by获取某些内容的最新版本。虽然这可能在实践中有效,但MySQL文档明确指出这不受支持。相反,尝试类似:

create view LastVersion as
    select s.*
    from strings s
    where s.chapter = (select max(chapter)
                       from strings s2
                       where s.String = s2.String
                      )

我假设您正在寻找String的最新章节。如果您正在查找StringId的最新章节,请相应更改where语句。

请注意,MySQL不支持视图的from子句中的子查询。引用很清楚(here):

  

SELECT语句不能在FROM子句中包含子查询。

它支持其他子句中的子查询。