在我的数据库中,我有一个表,其中包含某个已翻译字符串的所有版本。我想创建一个视图,该视图返回一个表,其中包含每个字符串的所有最新版本。
我想出了下面的解决方案。
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有没有办法在没有支持视图的情况下获得它?
发布于 2013-05-20 22:43:08
基于数据的排序,您将依赖于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子句中包含子查询。
它确实支持其他子句中的子查询。
https://stackoverflow.com/questions/16651386
复制相似问题