sql >> Database >  >> RDS >> Mysql

mysql tijdklok

Je mist een GROUP BY clausule voor uw MAX() totaal. De reden waarom je het juiste antwoord kreeg 12 voor je eerste zoekpoging was alleen omdat dat de grootste ID in de tabel is, terwijl het toevallig ook bij emp_id = 1 hoort . U zou hetzelfde resultaat hebben gekregen voor elk van de emp_id waarden. EEN GROUP BY clausule zal dit oplossen.

Hier is een voorbeeld van het ophalen van de hele rij voor het bijbehorende record:

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

Dit kan ook met een HAVING clausule, waarbij de subquery niet nodig is:

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

Ter referentie:de referentie voor MySQL-aggregatiefuncties.




  1. virtualenv pip mysqldb mac os X python

  2. AngularJS | Hoe de gegevens van Json naar de database te verzenden in Codeigniter

  3. MySQL-conversiefunctie

  4. Een variabele doorgeven aan een trigger