我有这样的查询:
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'。
谢谢, 约什