mysql创建视图报错 1349 View's SELECT contains a subquery in the FROM clause

本文主要是介绍mysql创建视图报错 1349 View's SELECT contains a subquery in the FROM clause,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

报错sql (举例):

CREATE OR REPLACE
VIEW  v_tab_b AS 
SELECT
    `tab`.`id` AS `id`,
    `tab`.`create_time` AS `create_time`
FROM
   (  SELECT 
            `b`.`id` AS `id`
            `b`.`create_time` AS `create_time`
        FROM
            (
              tab_b    `b`
            )
        WHERE
            (
               b.id is not null
            )
        GROUP BY
            `b`.`id`
    ) `tab`

WHERE
    (`tab`.`id` IS NOT NULL) ;

 

此时执行报错: 

 

原因:

视图创建的sql语句中在from后面包含了子查询,这在mysql中是不允许的  (见报错sql中 加粗部分)

 

解决方法:

from后面的子查询单独创建为视图(子视图), 然后将此视图作为另外一个视图(主视图)的 from 部分即可

 

正确sql:

# 1: 将子查询部分拿出来, 单独创建为一个视图  v_tab_b_sub

CREATE OR REPLACE VIEW `v_tab_b_sub` AS 
SELECT
    `b`.`id` AS `id`,
    `b`.`create_time` AS `create_time`
FROM
    (
        tab_b  b
    )
WHERE
    (
        b.id is not null
    )
GROUP BY
    `b`.`id`

 

# 2: 创建视图  v_tab_b,  其中将子视图 v_tab_b_sub 作为from部分即可

CREATE OR REPLACE
VIEW  v_tab_b AS 
SELECT
    `tab`.`id` AS `id`,
    `tab`.`create_time` AS `create_time`
FROM
    v_tab_b_sub as tab
WHERE
    (`tab`.`id` IS NOT NULL)

 

 

 

 

 

 

 

 

 

这篇关于mysql创建视图报错 1349 View's SELECT contains a subquery in the FROM clause的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/282284

相关文章

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c