Originariamente inviato da foxissimo
Ciao grazie ancora, ho risolto.
Il mio problema era che non credevo potessi fare riferimento alla tabella già con il suo alias subito dopo il "SELECT", perchè l'alias della tabella lo dichiaro solo dopo.
Non conta la posizione delle righe delle istruzioni ma la sequenza delle azioni del server.

per primo risolve il nome delle tabelle e crea se esiste l'alias, poi risolve le condizioni del ON, using, where e crea una tabella temporanea che ingloba tutte le tabelle con i dati richiesti condizionati. A questo punto seleziona i campi richiesti dalla select, applica gli alias dei campi e poi mandera' il tutto nel buffer del resul set.

Se provi ad applicare l'alias del campo alla condizione in where riceverai l'errore di campo inesistente, perche' l'alias al momento della risoluzione del where ancora non esiste anche se cronologicamente vengono descritti prima i campi in select.

Poi ci sono le condizioni group by, having che agiscono dopo la creazione della tabella temporanea e prima della selezione dei campi formando a loro volta una selezione della prima selezione.... Poi l'order by che applica semplicemente un sort sul result set. Anche le subquery andrebbero analizzate ... anyway ..

Descrizione maccheronica della sequenza del select....