sql >> Databasteknik >  >> RDS >> Mysql

Hur fixar jag MySQL Query Alias ​​unknown kolumn? 2018

Enligt MySQL 5.7 Reference Manual ,

Du bör inte använda ett alias i WHERE-satsen eftersom aliaset genereras när frågan körs och kanske inte är redo när WHERE-villkoret körs. Du får alias är okänt kolumnfel eftersom MySQL inte är medveten om aliaset förrän efter att det har genererats som ett resultat av frågan. Därför kan du inte använda alias i WHERE-satsen här.

(Tillägg efter fråga redigering)

Du kan få önskat resultat med följande fråga:

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

Frågeförklaring:I SELECT sats du bara nämner de kolumner du vill visa, MAX() funktionen kommer redan att välja de maximala värdena själv (så att du inte behöver en WHERE-sats), och GROUP BY-satsen talar om för resultatet att gruppera alla resultat baserat på id och sedan url .




  1. Skapa databas i Shell Script - konvertera från PHP

  2. Bäst att använda * när du anropar många fält i mysql?

  3. SQL Server-fråga:Snabb med bokstavlig men långsam med variabel

  4. Hur hittar jag en lagrad procedur som innehåller <text>?