clickhouse创建视图SQL 错误 [47]: ClickHouse exception, code: 47
使用clickhouse创建视图时报错
SQL 错误 [47]: ClickHouse exception, code: 47, host: localhost, port: 8123; Code: 47, e.displayText() = DB::Exception: Missing columns:xxx required columns: yyy
因为多张表内有相同名称的字段,所以在创建视图时的子查询里用到了别名,其实SQL语句在直接运行查询时是可以正常运行的,
例如 :
--查询可以正常执行
SELECT
A.ID AS AID,B.ID AS BID
FROM
TA AS A
INNER JOIN
TB AS B ON 1=1 --创建视图报错
CREATE VIEW V_TEST AS
SELECT
A.ID AS AID,B.ID AS BID
FROM
TA AS A
INNER JOIN
TB AS B ON 1=1
查找官网文档中CREATE VIEW中没找到特殊的说明,只是在查询相关的文档中找到两个地方对别名的提示,抱着试试看的态度对语句进行了修改
FROM 子句
可以使用包含在括号里的子查询来替代表。 在这种情况下,子查询的处理将会构建在外部的查询内部。 不同于SQL标准,子查询后无需指定别名。为了兼容,你可以在子查询后添加‘AS 别名’,但是指定的名字不能被使用在任何地方。
JOIN 子句
子查询不允许您设置别名或在其他地方引用它们。
USING
中指定的列必须在两个子查询中具有相同的名称,而其他列必须具有不同的名称。您可以通过使用别名的方式来更改子查询中的列名(示例中就分别使用了'hits'与'visits'别名)。
--修改后的SQL
CREATE VIEW V_TEST AS
SELECT
AID,BID
FROM
(SELECT ID AS AID FROM TA) AS A
INNER JOIN
(SELECT ID AS BID FROM TB) AS B ON 1=1
如有错误,请留言改正
clickhouse创建视图SQL 错误 [47]: ClickHouse exception, code: 47的更多相关文章
- 创建视图sql
create view 视图名称 as 查询sql语句create view test2 as select * from sc te ...
- 同一个数据库实例,不同用户下多表创建视图,Hibernate完毕ORM映射,Spring整合,后台实现
1.同一个数据库实例.同用户,多表创建视图 2.同一个数据库实例,不同用户下.多表创建视图 3.同一个数据库,不同数据库实例,多表创建视图 4.不同类型数据库,多表创建视图 1.同一个数据库实例.同用 ...
- mysql创建视图和存储过程,变量
创建视图 sql>create view 视图名 as select语句; 修改视图并添加别名 sql>create or replace view empvu10 (employee_n ...
- SQL创建视图
1.视图的理解 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据 .从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表 .从数据库系统内部来看,视图是由一张或多张表 ...
- clickhouse物化视图
今天来简单介绍一下clickhouse的物化视图 物化视图支持表引擎,数据保存形式由它的表引擎决定,创建物化视图的完整语法如下: create materialized view mv_log eng ...
- Sql Server的艺术(六) SQL 子查询,创建使用返回多行的子查询,子查询创建视图
子查询或内部查询或嵌套查询在另一个SQL查询的查询和嵌入式WHERE子句中. 子查询用于返回将被用于在主查询作为条件的数据,以进一步限制要检索的数据. 子查询可以在SELECT,INSERT,UPDA ...
- Sql server中 如何用sql语句创建视图
1.视图的作用 视图的作用: 第一点:使用视图,可以定制用户数据,聚焦特定的数据. 解释: 在实际过程中,公司有不同角色的工作人员,我们以销售公司为例的话, 采购人员,可以需要一些与其有关的数据,而与 ...
- SQL Server创建视图——视图的作用
视图简介: 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口. 常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表 . ...
- [SQL Server创建视图时的注意点]
创建视图的查询语句必须要遵守一定的限制 1. 要对某些列取别名,并保证列名的唯一 (具有相同的列名的表,在创建视图的时候,需要使用别名,表名.列名 也是不可以的) 当我们在通过新建视图来创建视图的话, ...
随机推荐
- Oracle使用——Oracle表字段的增加、删除、修改和重命名
增加字段 语法 alter table tablename add (column datatype [default value][null/not null]); 说明:alter table 表 ...
- poj 2236【并查集】
poj 2236 Description An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical t ...
- hdu5442 Favorite Donut 后缀数组 长春网赛
wa从一点到晚上11点没停过,也不知道为什么错,第二天换了个思路做,终于过了.这题还是有点问题的,数据有点水,我看到有人贴的代码baabbaab这组数据是4 0,明显错的,但是却可以过. 下面的是我第 ...
- sql常用内置函数
用于测试的表: 一.SUM 返回数值列的总数. 执行查询: select SUM(Score) as 总得分 from Students 效果: 二.MAX 返回一列中的最大值.. 执行查询: sel ...
- wepy ——$apply
1.说明 在异步函数中更新数据的时候,必须手动调用 $apply 方法. 2.代码和效果 // html <button type="primary" plain=" ...
- MyBatis动态批量插入、更新Mysql数据库的通用实现方案
一.业务背景 由于需要从A数据库提取大量数据同步到B系统,采用了tomikos+jta进行分布式事务管理,先将系统数据源切换到数据提供方,将需要同步的数据查询出来,然后再将系统数据源切换到数据接收方, ...
- maven 发布到本地仓库
1.maven打包命令 maven package命令只是将你需要打包的项目打包到项目的class文件夹下面,并没有发布到本地仓库或者私服上面,现在多模块开发的打包一般依赖私服或者 本地仓库,因此,我 ...
- Java练习 SDUT-3422_小金问呀问不会问题
小金问呀问不会问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 众所周知,C语言的学习是我们程序设计基础的重点和主要 ...
- Redis源码解析:10scan类命令的实现
像keys或者smembers命令,需要遍历数据集合中的所有元素.在一个大的数据库中使用,可能会阻塞服务器较长的一段时间,造成性能问题,因此不适用与生产环境. 在Redis2.8.0中引入了scan类 ...
- C# 局部函数与事件
本文告诉大家使用局部函数可能遇到的坑. 在以前,如果有一个事件public event EventHandler Foo和一个函数private void Program_Foo(object sen ...