视图查询不到数据,创建视图sql可以查询到数据
1、直接运行创建视图的sql,查询数据正常
2、查询视图,没数据
3、创建视图语句
创建视图不能用别名,这个是不是一个bug啊,请厂商工程师回复一下
没明白
创建视图的sql语句,表不能用别名,如select * from tab1 a left join tab2 b on xx;tab1,tab2不能用别名a,b
注意打码
原语句创建视图不应该出现这类问题啊
是bug吧。。。
explain analyze分别看看两个执行的条件operator等是否有差异的。
这明显是有bug,创建视图怎么能不支持别名
这是 TiDB 8.5.x 版本中,视图定义里表别名处理的已知 Bug
表不能使用别名!
不能用别名 是bug的话,那太低级了。
看一下视图的执行计划是不是相同的表
修改下别名1为其他名称,或者加上反引号试试
创建视图的 SQL 直接跑有数据、查视图没数据,优先怀疑视图定义时的上下文差异。常见原因:一是视图创建时未带 schema 限定,视图内表名解析到了创建者的默认库,查询视图时会话在别的库导致引用到空表或不同表;二是视图定义里的 SQL 与你手动跑的版本不完全一致(比如手动跑时带了 use 某库或不同的 where)。核对方法:SHOW CREATE VIEW 看实际存下来的定义,把表名补全为 库名.表名,再确认查询视图的会话用户对底层表有权限且看到的是同一份数据。
看不懂啊,大哥
纯bug
(1)重建视图或者更换列名等
(2)不管何种情况,毋庸置疑这是一个BUG,有可能和元数据或缓存相关,重新分析表或者重启TIDB是否是可以恢复呢。