Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在with子句之后创建视图_Mysql_Postgresql - Fatal编程技术网

Mysql 在with子句之后创建视图

Mysql 在with子句之后创建视图,mysql,postgresql,Mysql,Postgresql,我有一个极其复杂的问题,需要分几个步骤回答。首先,我通过运行一个sql文件(如a.sql)创建一个视图,生成的视图用于第二个sql文件(如b.sql)中的一个单独查询。在.sql文件中创建视图时遇到问题 在a.sql文件中,我尝试首先使用WITH子句,然后尝试生成一个视图,类似于下面我正在简化的视图,以便理解我做错了什么。假设我的tab表有两个字段,id和age。当我尝试执行以下操作时,出现语法错误。mysql/postgresql中不允许这样的操作吗?以下代码中我做错了什么 显然,这个特定的示

我有一个极其复杂的问题,需要分几个步骤回答。首先,我通过运行一个sql文件(如a.sql)创建一个视图,生成的视图用于第二个sql文件(如b.sql)中的一个单独查询。在.sql文件中创建视图时遇到问题

在a.sql文件中,我尝试首先使用WITH子句,然后尝试生成一个视图,类似于下面我正在简化的视图,以便理解我做错了什么。假设我的tab表有两个字段,id和age。当我尝试执行以下操作时,出现语法错误。mysql/postgresql中不允许这样的操作吗?以下代码中我做错了什么

显然,这个特定的示例可以高效地解决,而无需使用WITH子句并直接创建视图。但我的问题的主要目的是理解WITH子句后跟CREATE视图在语法上是否被允许

任何帮助都将不胜感激。多谢各位

以aa为例 选择t.id作为id,选择t.age作为年龄 从表t 其中t.age>18 下拉视图(如果存在); 创建视图bb作为 选择a.id,a.age 来自aa a 其中a.年龄>25岁
在Postgres中,您可以使用如下子句创建视图

DROP VIEW IF EXISTS bb; 

CREATE VIEW bb 
AS 
  WITH aa 
       AS (SELECT * 
           FROM   (VALUES (12, 320)) x(t, c)) 
  SELECT * 
  FROM   aa 

我不能为postgresql说话,但MySQL中的视图似乎没有实际优势。为什么在这种情况下使用视图?WITH子句是单个SELECT语句的一部分,一个这样的子句不能用于多个SQL语句。