我有一个 MySQL 数据库,里面有一个包含员工事件日志的表。
+-------------------------------------------------+
| log_id | employee_id | date_time | action_type |
+-------------------------------------------------+
| 1 | 1 | 2015/02/03 | action1 |
| 2 | 2 | 2015/02/01 | action1 |
| 3 | 2 | 2017/01/02 | action2 |
| 4 | 3 | 2016/02/12 | action1 |
| 5 | 1 | 2016/10/12 | action2 |
+-------------------------------------------------+
我需要 2 个查询。首先,为每个员工获取他的最后一个 Action 。因此,从这个示例表中,我需要获取包含所有列的第 3、4 和 5 行。其次,仅获取指定员工的最新操作。
有什么想法可以实现吗?我正在使用 Spring Data JPA,但原始 SQL 查询也很棒。
提前谢谢你。
最佳答案
准备好 fred ed...
SELECT x.*
FROM my_table x
JOIN
( SELECT employee_id
, MAX(date_time) date_time
FROM my_table
GROUP
BY employee_id
) y
ON y.employee_id = x.employee_id
AND y.date_time = x.date_time;
关于mysql - 只为每个员工和 MySQL 中的特定员工选择最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47635329/