我有兩個1:n關係的表:「content」和「versioned-content-data」(例如,文章實體和該文章創建的所有版本) 。我想創建一個顯示每個「內容」的頂級版本的視圖。如何將SQL子查詢轉換爲連接
目前我使用此查詢(用一個簡單的子查詢):
SELECT t1.id, t1.title, t1.contenttext, t1.fk_idothertable t1.version FROM mytable as t1 WHERE (version = (SELECT MAX(version) AS topversion FROM mytable WHERE (fk_idothertable = t1.fk_idothertable)))
子查詢實際上是一個查詢,提取特定項的最高版本相同的表。請注意版本化的項目將具有相同的fk_idothertable。
在SQL Server中我試圖創建這個查詢的索引視圖但似乎我不能因爲子查詢不索引視圖允許的。所以...這是我的問題...你能想出一種方法來將這個查詢轉換成JOINs的某種查詢嗎?
好像索引視圖不能包含:
- 子查詢
- 公用表表達式
- 派生表
- HAVING子句
我絕望。任何其他想法都歡迎:-)
非常感謝!
是你的子查詢是否正確?我只看到一個表,引用 – 2009-03-02 01:00:33
是的,是同一個表的子查詢,提取共享相同的fk_idothertable – sachaa 2009-03-02 01:02:20
btw ...的項目的最大版本... fk_idothertable是主表的外鍵 – sachaa 2009-03-02 01:05:05