mysql - 根据其在mySql中的当前状态选择id
问题描述
我有一个名为Transport_status的表,它存储学生的交通状态数据。
**Transport_Status**
+------------+------------------+---------------------+
| student_id | transport_status | date |
+------------+------------------+---------------------+
| 1 | 1 | 2018-07-03 14:37:53 |
| 1 | 0 | 2018-07-03 17:05:17 |
+------------+------------------+---------------------+
此处 transport_status = 1 表示学生当前正在使用交通设施,而 transport_status = 0 表示学生已离开交通设施。
我必须获取当前正在使用交通工具的 student_id...
我使用了“ Select * from transport_status where transport_status=1; ”,但是我得到了 student_id 1 作为查询的结果,但是你可以看到 student_id 1 没有交通设施了。
我必须选择最新的 transport_status 条目为 1 的 student_id。
帮助!
解决方案
您可以使用自加入来获取每个学生的最新行,然后检查最新行是否将 transport_status 设置为 1
select a.*
from transport_status a
join (
select student_id, max(date) date
from transport_status
group by student_id
) b on a.student_id = b.student_id and a.date = b.date
where a.transport_status = 1
推荐阅读
- apache-kafka - 如何将Kafka消费者组中的消费者偏移量提前到最后?
- c# - 在 ASP.NET MVC 6 中上传文件
- php -
- javascript - React - 使用 API 中的数据填充选择下拉列表
- javascript - 调用 clearInterval 后 setInterval 继续运行
- kubernetes - 在 kubernetes 中使用域部署入口 nginx
- python - 稀疏连接的网络 Keras
- c# - 使用 BlobContainerClient 将大型文件上传到 Azure
- dataweave - Mulesoft DataWeave:如何为带引号的字符串转义 $
- javascript - 有没有办法在 React JS 中查看已映射数组中的特定项目?