sql >> Databasteknik >  >> RDS >> Mysql

mysql tidklocka

Du saknar en GROUP BY sats för din MAX() aggregat. Anledningen till att du fick rätt svar 12 för ditt första sökförsök berodde bara på att det råkar vara det bästa ID:t i tabellen samtidigt som det också tillhörde emp_id = 1 . Du skulle ha fått samma resultat för någon av emp_id värden. En GROUP BY klausul kommer att reda ut detta.

Här är ett exempel på att hämta hela raden för den associerade posten:

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

Detta kan också göras med en HAVING klausul, behöver inte underfrågan:

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

Som referens, referensen för MySQL-aggregatfunktioner.




  1. Python JSON-kodare för att stödja datetime?

  2. Felaktigt datetime-värde Databasfelnummer:1292

  3. Hur ställer jag in en permanent länk för ditt blogginlägg efter datum och titel på inlägget?

  4. Anslut till en MySQL-server över SSH i PHP