根据ID在MySQL中的当前状态选择ID

时间:2018-07-03 15:04:43

标签: mysql

我有一个名为 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。

帮助!

1 个答案:

答案 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