私は非常に単純なクエリを持っていますが、これは正常に動作します:
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 - ビュー 'events.v_image_stats' が無効なテーブル、列、関数を参照しているか、ビューの定義者/呼び出し元がそれらを使用する権限を欠いている
v_image_stats ビューと、それが基にしているビューとテーブルには適切な権限があります。私は完全に当惑しています。
ビューの作成と管理に MySQL 5.6 と phpmyadmin を使用しています。また、Phalcon フレームワーク内で PHP PDO を介して DB にアクセスしていますが、これは他の問題ではなく 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 句でビューの代わりにテーブルを使用すると失敗します。