使用子查询的替代方法 - 无法在Mysql

时间:2016-01-04 18:49:56

标签: mysql subquery views

我创建了一个基于计算拉出一系列行的视图;使用此脚本(根据此问题:How to select Range of rows based on field values - 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 个答案:

答案 0 :(得分: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