mysql - mysql 中获取最新时间员工列表的最佳查询是什么?
问题描述
我有一个巨大的表,每当我需要从中获取特定数据时,它都会使数据库挂起。我想收集每个员工的最新时间等信息。
数据库就像:
+----------+--------+----------+ | 员工名 | 时间 | 位置 | +----------+--------+----------+ | 拉玛 | 1:05 | 啊 | | 拉玛 | 2:10 | bb | | 阿朱 | 4:30 | 抄送| | 拉玛 | 6:00 | dd | +----------+--------+----------+
我需要像这样的输出:
+----------+--------+----------+ | 员工名 | 时间 | 位置 | +----------+--------+----------+ | 阿朱 | 4:30 | 抄送| | 拉玛 | 6:00 | dd | +----------+--------+----------+
我试过了:
1)
SELECT emp_name, time, location FROM tbl_emp
WHERE time IN (SELECT max(time) FROM tbl_emp GROUP BY emp_name);
2)
SELECT emp_name, time, location FROM tbl_emp AS att
LEFT JOIN tbl_emp AS tmp ON tmp.emp_name=att.emp_name AND tmp.time>att.time
WHERE tmp.time is NULL
GROUP BY att.employee_id;
但两者都使查询太慢。
解决方案
使用分组和聚合
SELECT emp_name, max(time)
FROM tbl_emp
group by emp_name
推荐阅读
- angular - 为什么使用 catchError 而不是在 Angular 的订阅错误回调中处理错误
- tfs - Azure Devops Pipelines 不构建引用的项目
- javascript - React 应用程序:在 React 中保护开发 URL
- java - 如何检查为 8085 模拟器设置的标志
- amazon-web-services - AWS SFTP Gateway API 测试有效,但 SFTP 客户端返回身份验证失败
- r - R不识别因子
- php - PHP 'include' 可以用来复制 WP 中的 PHP + ACF 部分吗?
- javascript - 使 SVG foreignObject 可滚动
- php - nginx - 子目录的 php 返回 404
- angular - Angular-Reactive-Forms,出现错误,无法读取未定义的属性“get”