我有以下数据库表,其中包含有关公共交通系统的信息:
RideStop引用了Ride和Station。通过sequenceNumber订购RideStops时,您将获得此特定行程的路径。
我需要从所有游乐设施中获取路径,这些路径从特定的站点出发。 我可以通过执行
来获得完整的路径select *
from ridestop rs
where rs.ride in (
SELECT ride FROM ttm.ridestop where stationid = 8503000
)
然而,我并不关心乘车的来源,只是去哪里。
问题: 如何从站8503000开始将结果限制为仅限于游乐设施的剩余部分?
答案 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 ))