我有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/