我有一个非常简单的查询,工作正常:
SELECT *
FROM images i
INNER JOIN v_images_stats s
ON i.id = s.id
通过SELECT *我最终创建了重复的列名,因此我将查询编辑为更具体
并忽略重复的列名称,但MysqL抛出#1356错误:
SELECT i.is as id,s.id as imageid
FROM images i
INNER JOIN v_images_stats s
ON i.id = s.id
#1356 – View ‘events.v_image_stats’ references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
v_image_stats视图以及它所基于的底层视图和表具有正确的权限,我完全陷入困境.
我正在使用MysqL 5.6和PHPmyadmin来创建和管理视图,我也在Phalcon框架内通过PHP PDO访问数据库,但我很确定这是一个MysqL问题,而不是其他任何问题.
任何帮助感激不尽.
我最初发布了SHOW CREATE VIEW的完整输出但是它太冗长了,这是我可以创建的最简单的例子来重新创建问题:
CREATE ALGORITHM=UNDEFINED DEFINER=`events`@`localhost` sql SECURITY DEFINER VIEW `v_image_stats` AS
(
select it.*,1 AS `my_alias`
from `v_image_totals` `it`
order by `my_alias` asc)
)
如果我在FROM子句中使用表而不是视图,它也会失败.