2016-01-04 56 views
0

我創建了一個視圖,該視圖基於計算來拉取一系列行;使用該腳本(每個這樣的疑問:How to select Range of rows based on field values - MySQL使用子查詢的替代方法 - 無法在Mysql中創建視圖

select t.* 
from curdataEvents t cross join 
    (select max(revs) as maxrev from curdataEvents) x 
where t.revs >= x.maxrev - 100000; 

這拉我需要行的範圍內。爲了得到想要的報告 - 我要創建每個創建報表的下一層多個視圖。問題是MySQL不會使用子查詢創建視圖任何關於如何重寫上面的腳本的想法會產生相同的結果,但允許我創建一個視圖?我嘗試過多種使用UNION子句的變體等。什麼讓我絆倒是這是一個加入自己。我發現迄今爲止使用多個表的例子。任何幫助非常感謝!!!

謝謝

回答

1

您可以使用子查詢,而不是在FROM子句中。只需將其移至WHERE子句;

CREATE VIEW view1 AS 
SELECT t.* 
FROM curdataEvents t 
WHERE t.revs >= (SELECT MAX(revs) - 100000 AS maxrev FROM curdataEvents) 

An SQLfiddle to test with

+1

優秀!!我想我一直在努力工作了很長一段時間,我開始將它過度複雜化。謝謝!奇蹟般有效! – Nicoale

相關問題