首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >印度铁路数据库在车站之间连接列车时出错

印度铁路数据库在车站之间连接列车时出错
EN

Stack Overflow用户
提问于 2013-04-13 01:07:20
回答 2查看 542关注 0票数 2

我有随附的mysql数据库的火车,火车时刻表,列车车次。

现在我想查询两个车站之间的列车,比如Jaipur到Jodhpur,所以我像这样查询

代码语言:javascript
运行
复制
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'

它给出了正确的结果,但它显示了从焦特布尔到济浦尔的列车和从济浦尔到焦特布尔的列车,所以结果变成了列车的两倍。

我只想问一下从Jaipur到Jodhpur的火车,不想问Jodhpur到Jaipur的火车。如果我选择date,那么必须从列车数据库中找到匹配的列车。

EN

回答 2

Stack Overflow用户

发布于 2013-04-13 01:34:00

您查询的不是trains表,而是列车时刻表,这意味着查询不会给出2个列车,而是给出2个列车时刻表。

我将从trains表中开始选择,如下所示:

代码语言:javascript
运行
复制
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代码)

票数 1
EN

Stack Overflow用户

发布于 2013-04-13 01:46:27

确保联接不同的记录:

代码语言:javascript
运行
复制
    SELECT distinct d1.train_no
      FROM train_schedule d1
INNER JOIN train_schedule d2 ON (     d2.train_no =  d1.train_no
                                  AND d2.stn_code <> d1.stn_code )
     WHERE d1.stn_code = 'JU'
       AND d2.stn_code = 'JP'
         ;

否则,您的结果集将填充不需要的身份匹配(表示从一个车站到其本身的虚构的火车区段)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15977094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档