Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie behebt man die unbekannte Spalte „MySQL Query Alias“? 2018

Gemäß MySQL 5.7 Reference Manual ,

Sie sollten keinen Alias ​​in der WHERE-Klausel verwenden, da der Alias ​​beim Ausführen der Abfrage generiert wird und möglicherweise nicht bereit ist, wenn die WHERE-Bedingung ausgeführt wird. Sie erhalten den Spaltenfehler „alias is unknown“, da MySQL den Alias ​​erst kennt, nachdem er als Ergebnis der Abfrage generiert wurde. Daher können Sie hier keinen Alias ​​in der WHERE-Klausel verwenden.

(Ergänzung nach Bearbeitung der Frage)

Sie können das gewünschte Ergebnis mit der folgenden Abfrage erhalten:

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

Abfrageerklärung:In SELECT -Klausel erwähnen Sie nur die Spalten, die Sie anzeigen möchten, den MAX() Die Funktion wählt bereits die Maximalwerte selbst aus (Sie benötigen also keine WHERE-Klausel), und die GROUP BY-Klausel weist das Ergebnis an, alle Ergebnisse basierend auf id zu gruppieren und dann url .