Krótka odpowiedź:
- odniesienia do aliasów na liście SELECT lub
- Wyrażenia z aliasami
Jak dotąd jedyna dokumentacja, jaką znalazłem na ten temat to:https://bugs .mysql.com/bug.php?id=79549
W tym łączu znajduje się:
[9 grudnia 2015 15:35] Roy Lyseng...Oto dłuższe tło pierwotnej decyzji:
W przeciwieństwie do odwołań do aliasów w podzapytaniach w klauzuli WHERE (oraz w GROUP BY), nie ma powodu (z wyjątkiem zgodności ze standardami), aby nie zezwalać na odwołania do aliasów na liście SELECT , ponieważ powinny być dostępne w tej samej fazie wykonywania zapytania. Ale wsparcie w 5.6 było dość arbitralne:
Biorąc pod uwagę to:utwórz tabelę t1(a int, b int),
Alias na liście SELECT jest nieprawidłowy:
select a+b as c,c+1 from t1;
Ale w podzapytaniu prawidłowe jest odniesienie do c:
select a+b as c,(select c+1) from t1;
A podzapytanie musi znajdować się po definicji aliasu:
select (select c+1),a+b as c from t1;
Łatwo więc powiedzieć, że obsługa odniesień do aliasów na liście SELECT był raczej doraźny. Niemniej jednak postaramy się ponownie zaimplementować stare rozwiązanie, ale bez próby oczyszczenia oczywistych dziur w obsłudze tej funkcji. Ale odwoływanie się do aliasów w podzapytaniach w klauzuli WHERE nie zostanie ponownie zaimplementowane.
Jeszcze szukam dokumentacji poza raportem o błędzie opisującym tę funkcjonalność w standardowych dokumentach; ale jak dotąd nie ma szczęścia.