6

私は非常に単純なクエリを持っていますが、これは正常に動作します:

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 句でビューの代わりにテーブルを使用すると失敗します。

4

1 に答える 1