使用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

如有错误,请留言改正

最新文章

  1. 数论 UVALive 2756
  2. JS的构造及其事件注意点总结
  3. 如何用Entity Framework 6 连接Sqlite数据库[转]
  4. 淘宝自己的前端框架KISSY(类似jquery) - 简易指南
  5. java新手笔记15 多态
  6. devi into python 笔记(三)callable getattr lambda表达式
  7. js数学方法应用
  8. android布局margin和padding差异!
  9. 激活windows server 2012 R2的方法
  10. Android学习笔记--处理UI事件
  11. 2.python中self详解(程序适用于python3版本)
  12. IO通信模型(一)同步阻塞模式BIO(Blocking IO)
  13. django的静态文件的引入
  14. trinitycore 魔兽服务器源码分析(一) 网络
  15. [k8s] 最简单的集群小案例-记录本(tomcat+mysql)
  16. 胡同门牌号-2015决赛Java语言A组第一题
  17. [A] 1046 Shortest Distance
  18. 8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
  19. 第十一章 springboot + mongodb(简单查询)
  20. juey点击tr选中里面的radio

热门文章

  1. win2003开启ftp
  2. Oracle使用——impdp导入数据时数据表已经存在
  3. 阿里开源新一代 AI 算法模型,由达摩院90后科学家研发
  4. 微信小程序记录
  5. Django框架form表单配合ajax注册
  6. Java练习 SDUT-2585_机器人II
  7. redux之createStore方法底层封装模拟
  8. 模板—tarjan求割边
  9. Uniapp使用iconfont
  10. 数(aqnum)