Mam bardzo prostą kwerendę, która działa prawidłowo:MySQL 6.5.12 błąd: Błąd 1356 podczas korzystania zamówienie aliasu w definicji widoku
SELECT *
FROM images i
INNER JOIN v_images_stats s
ON i.id = s.id
Przez SELECT *
skończę tworzenia zduplikowanych nazw kolumn więc edytowany zapytanie być bardziej szczegółowe i ignorować zduplikowane nazwy kolumn, ale MySQL generuje błąd: # 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
widok v_image_stats i widoki bazowe i TA Opiera się na nich ma odpowiednie uprawnienia, jestem kompletnie oszołomiony.
Używam MySQL 5.6 i phpmyadmin do tworzenia widoków i zarządzania nimi, ja również uzyskuję dostęp do bazy danych poprzez PHP PDO w ramach Phalcon, ale jestem raczej pewien, że to problem MySQL, a nie cokolwiek innego.
Każda pomoc otrzymana z wdzięcznością.
początkowo pisał pełne wyjście SHOW CREATE VIEW, ale to było zbyt rozwlekły, oto najprostszy przykład można utworzyć, aby odtworzyć problem:
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)
)
zawiedzie także w przypadku korzystania z tabeli zamiast widok w klauzuli FROM.
Wyślij komunikat "POKAŻ WKRÓTCE WIDZENIE" – Stephan
Problem wydaje się być spowodowany zamawianiem widoku przez alias kolumny. Nie mogę znaleźć błędu MySQL lub znanego ograniczenia związanego z tym, czy ktoś może to odtworzyć? – davec
jeśli usuniesz 'order by' działa? lub jeśli złożysz zamówienie według nazwy kolumny, a nie aliasu? – Stephan