Krátká odpověď:
- odkazy na aliasy v seznamu SELECT nebo
- Výrazy s aliasy
Jediná dokumentace, kterou jsem k tomu zatím našel, byla:https://bugs .mysql.com/bug.php?id=79549
V tom odkazu je následující:
[9. prosince 2015 15:35] Roy Lyseng...Zde je delší pozadí původního rozhodnutí:
Na rozdíl od odkazů na aliasy v poddotazech v klauzuli WHERE (a v tomto případě v GROUP BY) neexistuje žádný důvod (kromě standardní shody), abychom nepovolili odkazy na aliasy v seznamu SELECT , protože by měly být dostupné ve stejné fázi provádění dotazu. Ale podpora v 5.6 byla docela libovolná:
Vzhledem k tomu:vytvořte tabulku t1(a int, b int),
Alias v seznamu SELECT není platný:
select a+b as c,c+1 from t1;
Ale v rámci poddotazu je odkaz na c platný:
select a+b as c,(select c+1) from t1;
A poddotaz musí být po definici aliasu:
select (select c+1),a+b as c from t1;
Je tedy snadné říci, že podpora odkazů na aliasy v seznamu SELECT bylo spíše ad-hoc. Přesto se pokusíme znovu implementovat staré řešení, ale bez pokusu o vyčištění zjevných děr v podpoře této funkce. Ale odkazování na aliasy v poddotazech v klauzuli WHERE nebude znovu implementováno.
Stále hledám dokumentaci nad rámec zprávy o chybě popisující tuto funkci ve standardních dokumentech; ale zatím bez úspěchu.