SQL查询:选择特定项目后的所有引用

时间:2012-07-25 14:40:20

标签: mysql sql

我有以下数据库表,其中包含有关公共交通系统的信息:

  • 电台(身份证,姓名)
  • 骑(id,lineName)
  • RideStop(rideId,stationId,sequenceNumber,arrivalTime,departureTime)

RideStop引用了Ride和Station。通过sequenceNumber订购RideStops时,您将获得此特定行程的路径。

我需要从所有游乐设施中获取路径,这些路径从特定的站点出发。 我可以通过执行

来获得完整的路径
select * 
from ridestop rs 
where rs.ride in (
  SELECT ride FROM ttm.ridestop where stationid = 8503000
)

然而,我并不关心乘车的来源,只是去哪里。

问题: 如何从站8503000开始将结果限制为仅限于游乐设施的剩余部分?

2 个答案:

答案 0 :(得分:2)

以下查询使用子查询来指定乘坐中每个站的序列号。然后将它连接到骑行站,以便从该序列号上或之后选择所有内容。

select rs.*
from ridestop rs join
      (SELECT ride, rs.sequenceNumber
       FROM ride r join
            ridestop rs
            on r.ride = rs.ride
       where stationid = 8503000
      ) r
      on rs.ride = r.ride and
         rs.sequenceNumber >= r.sequenceNumber
order by rs.ride, rs.sequenceNumber

答案 1 :(得分:0)

如果StationId处于递增序列中,则以下查询有效

SELECT *
FROM   ridestop rs
WHERE  rs.ride IN (SELECT ride
                   FROM   ttm.ridestop
                   WHERE  ( stationid = 8503000
                            AND stationid > 8503000 ))