0

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

我想出了以下解决方案。

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

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

4

1 回答 1

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视图子句中的子查询。报价很清楚(在这里):

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

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

于 2013-05-20T14:43:08.293 回答