我有一个名为 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 ...
我使用了“ 从transport_status中选择*,其中transport_status = 1; ”,但是由于查询的结果,我得到了Student_id 1,但是您可以看到Student_id 1没有运输工具不再。
我必须选择“ transport_status”的最新条目为1的student_id。
帮助!
答案 0 :(得分:1)
您可以使用自联接获取每个学生的最新行,然后检查最新行的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