mysql - 如何找到一种类型的所有最新记录?
问题描述
我有一张这样的桌子:
id type value date
1 A 10 2018-08-01
2 A 20 2018-08-02
3 A 30 2018-08-04
4 B 11 2018-08-01
5 B 12 2018-08-02
6 C 11 2018-08-01
我想获得一种类型的最新记录:
id type value date
3 A 30 2018-08-04
5 B 12 2018-08-02
6 C 11 2018-08-01
这个sql怎么写?
解决方案
如果您与 有联系date
,那么您可以使用limit
与 的子句subquery
:
select t.*
from table t
where id = (select t1.id
from table t1
where t1.type = t.type
order by t1.date desc
limit 1
);
推荐阅读
- tree - 行为树和取消正在运行的事件
- python - 用于乌尔都语的 Tesseract 自定义训练模型从左到右输出并且没有识别出空格
- laravel - laravel Eloquent sync() 方法,执行多个 INSERT 查询
- javascript - Nodejs - Express - 在 API 中处理可选查询字符串参数的最佳实践
- google-bigquery - 在 BigQuery 中使用多重回归进行预测
- mysql - MySQL填充空列
- google-analytics - 如何跟踪通过展示广告网络的 Gmail 流量
- jquery - 如何从mvc中的表单将数据保存在两个表中
- c# - 为填充它们定义属性有什么区别
- php - PHP解析xml获取特定值