首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql 5.6/5.7:视图的SELECT在FROM子句中包含子查询

Mysql 5.6/5.7:视图的SELECT在FROM子句中包含子查询
EN

Stack Overflow用户
提问于 2016-10-20 08:50:17
回答 2查看 1K关注 0票数 1

MySql创建视图:

代码语言:javascript
复制
CREATE VIEW Foo as 
select type from (select 8 as type UNION ALL select 9 as type) types;

windows上的MySQL5.7.11:工作,但MySql 5.6.25-0ubuntu0.15.04.1 (Ubuntu):不工作。

代码语言:javascript
复制
View's SELECT contains a subquery in the FROM clause

这是从5.6到5.7的变化吗?我试图在Ubuntu上将mysql升级到5.7,但在Ubuntu上不可用。有什么建议吗?谢谢。

编辑:示例是一个测试用例。实际情况是创建一个视图,使Bar的一条记录成为视图中的两条记录:

代码语言:javascript
复制
   CREATE VIEW Foo as 
    select types.type, bar.value from 
    (select 8 as type UNION ALL select 9 as type) types, Bar bar
EN

回答 2

Stack Overflow用户

发布于 2016-10-20 08:59:33

问题是您正在创建一个包含从另一个查询中选择的查询的视图。

因此您只需以不同方式在视图中编写select查询即可。

解决方案:

查询:

代码语言:javascript
复制
select type from (select 8 as type UNION ALL select 9 as type) types;

与以下内容相同:

代码语言:javascript
复制
select 8 as type UNION ALL select 9 as type

所以创建一个视图:

代码语言:javascript
复制
CREATE VIEW Foo AS
  select 8 as type UNION ALL select 9 as type;
票数 1
EN

Stack Overflow用户

发布于 2016-10-20 10:08:11

是的,这是MySQL的一个变化。

早期版本的MySQL不允许在存储视图定义中使用内联视图(或者用MySQL的话来说就是派生表)。

就建议而言..。在视图查询中似乎不需要任何内联视图。除此之外,我质疑是否有必要...也就是说,需要存储视图定义的原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40143771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档