我正在使用MySQL和Yii2(这部分并不重要,因为首先我需要一个SQL查询),以捕获进入和离开某个位置的车辆。
数据按以下方式存储在DB中(此处简化了数据-通常在车辆退出之前是多辆车辆进入):

mysql - MySQL查询配对数据-LMLPHP

我需要一个查询来提取“成对”的数据-因此进入和退出记录对。 “输入”列为1表示进入,2表示退出。
因此,理想情况下,我需要一行同时包含特定访问的进入和退出数据。

显然,车辆在退出之前无法进入两次,因此我猜想created_date可能是其中的一个因素。

任何指导都是很棒的,但是现在,这已经超出了我的基本SQL知识!

谢谢。

最佳答案

select entry_tab.driver_id, entry_tab.vehicle_id, entry_tab.created_date as entry_date_time,

(select min(exit_tab.created_date) from data_table exit_tab where exit_tab.driver_id=entry.driver_id and exit_tab.vehicle_id=entry.vehicle_id and exit_tab.inout=2 and exit_tab.created_date>entry_tab.created_date) as exit_date_time

from data_table entry_tab where entry_tab.inout=1


假设:车辆先进入然后退出。

注意:代码未经测试。可能有小的语法错误。

10-04 11:20
查看更多