我有mysql数据库,包括列车、列车时刻表、车次号。
现在我想查询从斋浦尔到焦特布尔两站之间的列车,所以我这样查询

SELECT distinct d1.train_no
FROM   train_schedule d1
INNER JOIN train_schedule d2 ON d2.train_no=d1.train_no
WHERE d1.stn_code = 'JU' and d2.stn_code = 'JP'

它给出了正确的结果,但是它同时显示了焦特布尔到斋浦尔和斋浦尔到焦特布尔的列车,所以结果变成了列车的两倍。
我只想查询从斋浦尔到斋浦尔的火车,而不是从斋浦尔到斋浦尔的火车。如果我选择日期,那么必须从火车数据库中找到匹配的火车。

最佳答案

您不是在查询trains表,而是在查询train schedule表,这意味着查询不提供2列列车,而是提供2列列车时刻表。
我从火车表开始选择,如下所示:

SELECT trains.train_number, count(*) as "Number of schedules"
FROM trains
INNER JOIN train_schedule a USING (train_number) WHERE train_schedule.station_code = 'JU'
INNER JOIN train_schedule b USING (train_number) WHERE train_schedule.station_code = 'JP'

(伪mysql代码)

关于mysql - 印度铁路数据库连接车站之间的火车时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15977094/

10-12 05:29