Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como corrigir a coluna desconhecida do MySQL Query Alias? 2018


De acordo com o Manual de referência do MySQL 5.7 ,

Você não deve usar um alias na cláusula WHERE, pois o alias é gerado ao executar a consulta e pode não estar pronto quando a condição WHERE for executada. Você obtém um erro de coluna desconhecido porque o MySQL não está ciente do alias até que ele seja gerado como resultado da consulta. Portanto, você não pode usar alias na cláusula WHERE aqui.

(Adição após edição da pergunta)

Você pode obter o resultado desejado com a seguinte consulta:
SELECT r.id, r.url, MAX(date) as `max_date`
FROM report as r
GROUP BY id, url;

Explicação da consulta:Em SELECT cláusula você menciona apenas as colunas que deseja exibir, a MAX() A função já selecionará os valores máximos em si (portanto, você não precisa de uma cláusula WHERE), e a cláusula GROUP BY informa ao resultado para agrupar todos os resultados com base em id e então url .