我有两张桌子,一张是存储的公交线路,另一张是那些线路
所以我做了一个搜索选项,我试图只显示从A点(起点)到B点(目的地)的总线。
这是我的代码:
SELECT BusName FROM Buses
WHERE BusID IN
(SELECT BusID FROM Stations WHERE StationName = @StartingPoint AND BusID IN
(SELECT BusID FROM Stations WHERE (StationName = @Destination)))
问题在于它显示从B点到A点的公交车 我有用于路由顺序的列StationNum,即A = 10和B = 255.那么有什么简单的方法可以比较第一次选择的StationNum中的第三选择的StationNum吗?
答案 0 :(得分:0)
您可以使用派生表并对它们进行连接,如下所示:
SELECT B.BusName
FROM Buses B INNER JOIN
(SELECT BusID, StationName FROM Stations WHERE StationName = @StartingPoint) BS ON B.BusID = BS.BusID INNER JOIN
(SELECT BusID, StationName FROM Stations WHERE (StationName = @Destination) BD ON B.BusID = BD.BusID
WHERE BS.StationName > BD.StationName
您现在可以引用起始点的站名和目的地的站名,并在WHERE子句中进行比较。