Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да коригирам MySQL Query Alias ​​неизвестна колона? 2018 г

Според Справочното ръководство за MySQL 5.7 ,

Не трябва да използвате псевдоним в клаузата WHERE, тъй като псевдонимът се генерира при изпълнение на заявката и може да не е готов, когато условието WHERE се изпълни. Получавате грешка в колоната с псевдоним е неизвестен, тъй като MySQL не знае за псевдонима, докато не бъде генериран в резултат на заявката. Следователно не можете да използвате псевдоним в клаузата WHERE тук.

(Добавяне след редакция на въпроса)

Можете да получите желания резултат със следната заявка:

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

Обяснение на заявката:В SELECT клауза споменавате само колоните, които искате да покажете, MAX() функцията вече сама ще избере максималните стойности (така че не се нуждаете от клауза WHERE), а клаузата GROUP BY казва на резултата да групира всички резултати въз основа на id и след това url .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Най-добрият начин за кеширане на MySQL резултати?

  2. Грешка в MySQL 2006:mysql сървърът е изчезнал

  3. mysqldump не работи в crontab

  4. Хешът на паролата се връща false

  5. Присъединяване на резултата от две заявки mysql