无换乘线路查询(直接返回线路):
SELECT DISTINCT 公交线路 FROM
(SELECT FROM 公交线路表 WHERE 经过站点 IN (select 站点编号 from 站点信息表 where 站点名称='二环北路')) a
INNER JOIN
(SELECT FROM 公交线路表 WHERE 经过站点 IN (select 站点编号 from 站点信息表 where 站点名称='金殿')) b
WHERE a公交线路 = b公交线路
--一次换乘线路查询:
SELECT DISTINCT a公交线路 AS 公交线路a,b公交线路 AS 公交线路b, a站点编号 FROM
(SELECT FROM 公交线路表 WHERE 经过站点 IN (select 站点编号 from 站点信息表 where 站点名称='二环北路')) a
INNER JOIN
(SELECT FROM 公交线路表 WHERE 经过站点 IN (select 站点编号 from 站点信息表 where 站点名称='金殿')) b
WHERE a公交线路 <> b公交线路 AND a站点编号 = b站点编号
--多次换乘用一个语句就不行了,需要做循环
先完成直达的吧
两张表(一对多的关系):
表一:公交线路表
id, 线路(就是第几路车的意思)
表二:站点表或者路线表
id, 表一的id(就是外键),站点名,顺序
站站查询的时候, 查表二, group by 表一的id,就能确定线路, 再对照表一就能找到线路名了
当然如果是交作业的话, 两张表够了; 想更专业点就用3张表(多对多);
在就是换乘了
这个比较复杂, 会涉及到一些算法, 要看你的切入点是什么了
比如总时间, 换乘次数, 总路程等等,都有不同的设计方法
此为个人意见,仅供参考!
以上就是关于公交换乘查询sql语句全部的内容,包括:公交换乘查询sql语句、用java怎么写一个简单的公交 站站 查询功能,只须用mvc就行 数据库用mysql、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)