在我的数据库中,我有一个表,其中包含某些已翻译字符串的所有版本。我想创建一个视图,返回一个包含每个字符串的所有最新版本的表。
我想出了以下解决方案。
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
有没有办法在没有支持视图的情况下获得它?
答案 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子句中包含子查询。
它支持其他子句中的子查询。