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

mysql часовник

Липсва ви GROUP BY клауза за вашия MAX() агрегат. Причината да получите правилния отговор 12 защото първият ви опит за заявка беше просто защото това е най-големият идентификатор в таблицата, като съвпада и принадлежащ към emp_id = 1 . Щяхте да получите същия резултат за всеки от emp_id стойности. A GROUP BY клауза ще подреди това.

Ето пример за извличане на целия ред за свързания запис:

SELECT * FROM timeclock 
WHERE id = (SELECT MAX(id) AS id FROM timeclock WHERE emp_id = 1 GROUP BY emp_id);

Това може да стане и с HAVING клауза, без нужда от подзаявката:

SELECT action 
FROM timeclock 
WHERE emp_id = 1
GROUP BY emp_id
HAVING id = MAX(id);

За справка, справочника за обобщените функции на MySQL.




  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. Минимални GRANTs, необходими на mysqldump за изхвърляне на пълна схема? (Липсват тригери!!)

  3. Най-добра практика за мигриране на данни от MySQL към BigQuery

  4. моята голяма mysql таблица е предназначена за провал?

  5. Как мога да конвертирам MySQL база данни в SQLite в PHP?