Mysql
 sql >> Database >  >> RDS >> Mysql

Come riparare la colonna sconosciuta di MySQL Query Alias? 2018

Secondo Manuale di riferimento di MySQL 5.7 ,

Non dovresti usare un alias nella clausola WHERE poiché l'alias viene generato durante l'esecuzione della query e potrebbe non essere pronto quando viene eseguita la condizione WHERE. Ottieni alias è un errore di colonna sconosciuto perché MySQL non è a conoscenza dell'alias fino a quando non viene generato come risultato della query. Pertanto non è possibile utilizzare l'alias nella clausola WHERE qui.

(Aggiunta dopo la modifica della domanda)

È possibile ottenere il risultato desiderato con la seguente query:

SELECT r.id, r.url, MAX(date) as `max_date`
FROM report as r
GROUP BY id, url;

Spiegazione della query:In SELECT clausola menzioni solo le colonne che vuoi visualizzare, il MAX() la funzione selezionerà già i valori massimi stessa (quindi non è necessaria una clausola WHERE) e la clausola GROUP BY dice al risultato di raggruppare tutti i risultati in base a id e poi url .