创建视图更改“... is null”到isnull() - 但后来不起作用

时间:2017-06-07 17:00:13

标签: mysql view group-concat having isnull

我有这样的查询:

select a.*, (select group_concat(b.name) from b where b.id = a.id) as b_concat
from a
having b_concat is null

直接执行时,此功能正常。但是当我把它放到一个视图中时,我会遇到错误。

'create view ...'语句可以正常工作并创建视图。但是,当我“选择*来自my_view”时,我收到错误:

错误代码:1356 查看'my_db.my_view'引用无效的表或列(s)或函数或definer / invoker of view缺乏使用它们的权利

然后我查看我的视图定义,mysql已经将“b_concat为null”改为“have isnull(b_concat)” - 所以在视图中它现在有:

select a.*, (select group_concat(b.name) from b where b.id = a.id) as b_concat
from a
having isnull(b_concat)

当我复制该sql并直接执行它时,我收到错误:

'having clause'

中的未知列'b_concat'

问题......

有没有办法强制mysql 转换为“isnull()” - 或者是一种方法让mysql知道“b_concat”是一个派生字段,当它在isnull()里面?

或者我还有什么别的吗?

注意 - 表关系是'a'到'b'的一个'a'。

谢谢, 约什

0 个答案:

没有答案