Mysql 是否排除一列中的最大值用于检查另一列中的值的行?

Mysql 是否排除一列中的最大值用于检查另一列中的值的行?,mysql,group-by,left-join,max,Mysql,Group By,Left Join,Max,很抱歉标题不清楚,但我不知道如何总结 我正在处理几个表中提供给我的一些静态列车时刻表数据。我试图显示所有停在特定车站的列车,不包括那些在指定车站结束的列车。例如,当列出所有停在尼宾车站的列车时,我不希望这些列车停在尼宾车站 有关表格如下: 行程-列出每天的所有行程。每次行程都有一个行程id,由一个或多个站点组成。它还包含一个trip_headsign列,显示列车的最终目的地,但作为文本而不是ID +----------+------------+---------+---------------

很抱歉标题不清楚,但我不知道如何总结

我正在处理几个表中提供给我的一些静态列车时刻表数据。我试图显示所有停在特定车站的列车,不包括那些在指定车站结束的列车。例如,当列出所有停在尼宾车站的列车时,我不希望这些列车停在尼宾车站

有关表格如下:

行程-列出每天的所有行程。每次行程都有一个行程id,由一个或多个站点组成。它还包含一个trip_headsign列,显示列车的最终目的地,但作为文本而不是ID

+----------+------------+---------+-------------------------+--------------+----------+----------+
| route_id | service_id | trip_id | trip_headsign           | direction_id | block_id | shape_id |
+----------+------------+---------+-------------------------+--------------+----------+----------+
|        1 |          1 |       1 |  PRINCETON RAIL SHUTTLE |            1 |      603 |        1 | 
|        1 |          2 |       2 |  PRINCETON RAIL SHUTTLE |            1 |      603 |        2 | 
+----------+------------+---------+-------------------------+--------------+----------+----------+
停车次数-列出每列火车的每一站。在同一次旅行中的所有站点都共享一个旅行id,所以这就是我留下的JOIN。此表还有一个名为stop_sequence的列,范围从1到n,其中n是该行程的总停车次数。列车在停车点发车,顺序=1。该值的范围为2到26

+---------+--------------+----------------+---------+---------------+-------------+---------------+---------------------+
| trip_id | arrival_time | departure_time | stop_id | stop_sequence | pickup_type | drop_off_type | shape_dist_traveled |
+---------+--------------+----------------+---------+---------------+-------------+---------------+---------------------+
|       1 | 21:15:00     | 21:15:00       |   24070 |             1 |           0 |             0 |                   0 | 
|       1 | 21:25:00     | 21:25:00       |   41586 |             2 |           0 |             0 |              2.5727 | 
+---------+--------------+----------------+---------+---------------+-------------+---------------+---------------------+
这列火车只停两站。最后一个stop 41586是headsign列中列出的,注意它与stop_名称不匹配

+---------------+---------+---------+-------------------------+----------+----------------+
| stop_sequence | stop_id | trip_id | trip_headsign           | block_id | departure_time |
+---------------+---------+---------+-------------------------+----------+----------------+
|             1 |   24070 |       1 |  PRINCETON RAIL SHUTTLE |      603 | 21:15:00       | 
|             2 |   41586 |       1 |  PRINCETON RAIL SHUTTLE |      603 | 21:25:00       | 
+---------------+---------+---------+-------------------------+----------+----------------+

+---------+----------------------------+-----------+-----------+------------+---------+
| stop_id | stop_name                  | stop_desc | stop_lat  | stop_lon   | zone_id |
+---------+----------------------------+-----------+-----------+------------+---------+
|   41586 | PRINCETON RAILROAD STATION |           | 40.343398 | -74.659872 |     336 | 
+---------+----------------------------+-----------+-----------+------------+---------+
所以,再一次,我想做的是显示一个列表,列出所有在特定车站停的列车,除了那些在相关车站终止的列车。我写的这个查询是在这个例子中,对于stop_id 105,即纽约佩恩车站:

选择停止顺序、trips.trip\u id、trip\u headsign、trips.block\u id、从铁路数据出发的时间。trips left join rail\u data.trips上的停止时间。trip\u id=停止时间。trip\u id,其中停止id='105'按出发时间asc排序

这将返回如下结果:

+---------------+---------+-----------------------+----------+----------------+
| stop_sequence | trip_id | trip_headsign         | block_id | departure_time |
+---------------+---------+-----------------------+----------+----------------+
|            18 |    1342 | NEW YORK PENN STATION |     6600 | 05:43:00       | 
|             1 |    1402 | SUMMIT                |     6305 | 06:07:00       | 
|            16 |    1328 | NEW YORK PENN STATION |     6604 | 06:34:00       | 
|             1 |    1391 | SUMMIT                |     6307 | 06:41:00       | 
|            19 |    1360 | NEW YORK PENN STATION |     6908 | 06:47:00       | 
+---------------+---------+-----------------------+----------+----------------+
在这种情况下,我只希望开往顶峰的火车出现。但请记住,我不能简单地说“停车顺序>1”在哪里,因为我想包括可能是第二站、第三站等的列车,而不是最后一站


提前感谢您的帮助

您可以查询stop\u时间,并检查其shape\u dist\u traveled==0,获取相应的行程id,然后使用此id查询行程表。因此,您必须添加一个,其中:

其中trips.trip\u id在中选择st.trip\u id from stop\u times st where st.shape\u dist\u traveled==0


附言:我假设shape_dist_traveled将给出火车行驶的距离

不幸的是,shape_dist_traveled对于始发站仅为0,我不想排除这一点。