公交换乘查询,sql语句
1.sql20002.三张表:公交信息表(列名:公交线路,发车时间),公交线路表(列名:公交线路,经过站点),站点信息表(列名:站点编号,站点名称)3.表关系:站点编号=...
1.sql2000
2.三张表:公交信息表(列名:公交线路,发车时间),公交线路表(列名:公交线路,经过站点),站点信息表(列名:站点编号,站点名称)
3.表关系:站点编号=经过站点
需要:任意输入两个站名可以查询公交车的公交信息及换乘的站点名称
如:1路经过:a,b,c,d;2路经过f,c,e,r,d;输入c,d;得到结果:
1)1路,6:00-10:00;2路,6:30-21:00,换乘站为:c
2)1路,6:00-10:00;2路,6:30-21:00,换乘站为:d
这是我写的SQL语句:提示a,b附近有错
select distinct a.公交线路,b.公交线路,a.站点名称 from 公交信息表 where 公交线路 in
(select 公交线路 from 公交线路表 where 经过站点 in
(select 站点编号 from 站点信息表 where 站点名称='二环北路')) a,
(select distinct 公交线路 from 公交线路表 where 经过站点 in(select 站点编号 from 站点信息表 where 站点名称='金殿')) b
where a.经过站点=b.经过站点
帮我改下这个语句 展开
2.三张表:公交信息表(列名:公交线路,发车时间),公交线路表(列名:公交线路,经过站点),站点信息表(列名:站点编号,站点名称)
3.表关系:站点编号=经过站点
需要:任意输入两个站名可以查询公交车的公交信息及换乘的站点名称
如:1路经过:a,b,c,d;2路经过f,c,e,r,d;输入c,d;得到结果:
1)1路,6:00-10:00;2路,6:30-21:00,换乘站为:c
2)1路,6:00-10:00;2路,6:30-21:00,换乘站为:d
这是我写的SQL语句:提示a,b附近有错
select distinct a.公交线路,b.公交线路,a.站点名称 from 公交信息表 where 公交线路 in
(select 公交线路 from 公交线路表 where 经过站点 in
(select 站点编号 from 站点信息表 where 站点名称='二环北路')) a,
(select distinct 公交线路 from 公交线路表 where 经过站点 in(select 站点编号 from 站点信息表 where 站点名称='金殿')) b
where a.经过站点=b.经过站点
帮我改下这个语句 展开
4个回答
展开全部
--无换乘线路查询(直接返回线路):
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.站点编号
--多次换乘用一个语句就不行了,需要做循环
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.站点编号
--多次换乘用一个语句就不行了,需要做循环
展开全部
这个sql语句会报错,稍改一下就好:
--无换乘线路查询(直接返回线路):
SELECT DISTINCT a.公交线路 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.公交线路 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.公交线路,b.公交线路,a.站点名称 from 公交信息表
光你这一句就会报错了.要把所有的表加到后面的.
你的查询结构是
select *** from tab 1 where *** in tab 2 where ***
光你这一句就会报错了.要把所有的表加到后面的.
你的查询结构是
select *** from tab 1 where *** in tab 2 where ***
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改下这个语句百度地图
本数据来源于百度地图,最终结果以百度地图最新数据为准。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询