Mysql 5.6.12错误:在视图定义中使用order by别名时出现错误1356

Mysql 5.6.12错误:在视图定义中使用order by别名时出现错误1356,mysql,Mysql,我有一个非常简单的查询,效果很好: SELECT * FROM images i INNER JOIN v_images_stats s ON i.id = s.id 通过选择*我最终创建了重复的列名,因此我将查询编辑得更具体 忽略重复的列名,但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-视图“events.v_i

我有一个非常简单的查询,效果很好:

SELECT *
FROM images i
INNER JOIN v_images_stats s
ON i.id = s.id
通过选择*我最终创建了重复的列名,因此我将查询编辑得更具体 忽略重复的列名,但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-视图“events.v_image_stats”引用了无效的表、列或函数,或者视图的定义者/调用者没有使用它们的权限

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子句中使用表而不是视图,它也会失败。

这似乎是一个影响MySQL 5.6.10及以上版本的错误,我还没有针对MySQL 5.7进行测试。 我提出了MySQL的一个错误,因此可以跟踪并希望能够修复:


有关有效的解决方法,请参阅注释。

发布“显示创建视图输出”问题似乎是由按列别名排序视图引起的。我找不到与此相关的MySQL错误或已知限制,有人可以重新创建吗?如果您删除订单,它会工作吗?或者如果按列名而不是别名排序,则两者都可以。如果我按删除订单,它也会起作用,如果我按保留订单,但使用真实的列名而不是别名,它也会起作用。然后尝试按a.my_apples/b.total_apples排序