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

Hvordan rettes MySQL Query Alias ​​ukendt kolonne? 2018

Ifølge MySQL 5.7 Reference Manual ,

Du bør ikke bruge et alias i WHERE-sætningen, da aliaset genereres ved kørsel af forespørgslen og muligvis ikke er klar, når WHERE-betingelsen udføres. Du får alias er ukendt kolonnefejl, fordi MySQL ikke er opmærksom på aliaset før efter det er genereret som et resultat af forespørgslen. Derfor kan du ikke bruge alias i WHERE-sætningen her.

(Tilføjelse efter redigering af spørgsmål)

Du kan få det ønskede resultat med følgende forespørgsel:

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

Forespørgsel Forklaring:I SELECT klausul, du nævner kun de kolonner, du ønsker at vise, MAX() funktionen vil allerede selv vælge de maksimale værdier (så du behøver ikke en WHERE-sætning), og GROUP BY-sætningen fortæller resultatet at gruppere alle resultater baseret på id og derefter url .




  1. Hjælp med en MySql-forespørgsel - Rækkerne holder det gruppemæssige maksimum af en bestemt kolonne

  2. Sådan får du den aktuelle dato i SQL Server

  3. MySQL - Hvordan sporer man hver forespørgsel?

  4. 2 måder at slette duplikerede rækker i MariaDB (ignorerer primærnøgle)