我有两个具有 1:n 关系的表:“内容”和“版本化内容数据”(例如,文章实体和该文章创建的所有版本)。我想创建一个显示每个“内容”的顶级版本的视图。
目前我使用这个查询(带有一个简单的子查询):
选择 t1.id, t1.title, t1.contenttext, t1.fk_idothertable t1.版本 FROM mytable 作为 t1 WHERE (version = (SELECT MAX(version) AS topversion 来自我的表 WHERE (fk_idothertable = t1.fk_idothertable)))
子查询实际上是对提取特定项目的最高版本的同一个表的查询。请注意,版本化项目将具有相同的 fk_idothertable。
在 SQL Server 中,我尝试创建此查询的索引视图,但似乎我做不到,因为索引视图中不允许子查询。所以...这是我的问题...您能想出一种方法将此查询转换为某种带有 JOIN 的查询吗?
似乎索引视图不能包含:
- 子查询
- 公用表表达式
- 派生表
- HAVING 子句
我很绝望。欢迎任何其他想法:-)
非常感谢!