Czołem!
Mam następujący problem z widokami w mysql. Otóż to samo zapytanie wykonane ręcznie jako polecenie SQL może czasami zwracać w wyniku więcej pól (kolumn) niż widok utworzony na jego podstawie.
Nie rozumiem dlaczego tak się dzieje bo mysql w trakcie tworzenia widoku i podczas jego wykonywania nie zgłasza żadnych problemów.
Opisywane zjawisko zachodzi wtedy, gdy w zapytaniu o którym mowa używam funkcji CONCAT() do złączenia pól z kilku tabel na których operuje zapytanie. Samo zapytanie - zwraca to pole, ale widok utworzony na tym zapytaniu - nie.
Upraszczając maksymalnie wygląda to tak:
select pole1,pole2,concat(pole1,pole2) as pole3 from tabela1;
#wynik - tabela z 3 kolumnami
#a teraz
create view widok as select pole1,pole2,concat(pole1,pole2) as pole3 from tabela1;
#wynik - tabela z 2 kolumnami, a trzecią wcieło
A przecież to to samo zapytanie.
Jak można to wytłumaczyć?