VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 860|回复: 8

联合查询问题!

[复制链接]

1

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-16 22:00:02 | 显示全部楼层 |阅读模式
本人初学 特来求教达人  急!

两个关于火车信息的表
T_Schedule
ScheduleCode        varchar(10)
fromCity        varchar(20)       
toCity        varchar(20)       
LeaveTime        datetime       
ArrivalTime        datetime       
TrainType        varchar(10)       
Speed        varchar(10)       
Distance        int       
Days        int       


T_Schedule_Detail
cid        int        非空        主键
ScheduleCode        varchar(10)       
cityName        varchar(20)       
ArrivalTime        datetime       
LeaveTime        datetime               
NumOfSchedule        int       
Distance        int       
Days        int       



问题:若无法从始发站直达终点站  需要中转..
      提供 始发站名 和 终点站名  
要求 查询到 所有 能从 A 站到 B 站的中转站名


回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-12-17 00:45:01 | 显示全部楼层
表没有注释吗?

两个表的关系呢?
回复

使用道具 举报

1

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-12-17 01:30:01 | 显示全部楼层
T_Schedule_Detail.ScheduleCode 为T_Schedule.ScheduleCode的外键


回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-12-17 03:15:01 | 显示全部楼层
最好是把数据也帖出来撒~
回复

使用道具 举报

1

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-12-17 07:00:01 | 显示全部楼层
表一注释 :
车次号
始发站
终点站
离开时间
到达时间
火车类型
车速
总里程数
行驶天数


表2
cid 主键ID
车次号
本车次路径的站点名
到达此站点时间
离开此站点时间
本站台 在行驶线上的顺序
已完成 里程数
已完成 天数
回复

使用道具 举报

1

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-12-17 19:00:01 | 显示全部楼层
表内数据 (部分 不完全)
表1
ScheduleCode,fromCity,toCity,LeaveTime,ArrivalTime,   TrainType, Speed,Distance,Days
T108         北京     海南   
T989         长沙     重庆


表2
cid ScheduleCode cityName ArrivalTime LeaveTime        NumOfSchedule Distance Days
1   T108         北京     11:03       11:30    1               0      0
2   T108         郑州          12:09       12:30    2               689    1
3   T108         长沙     18:00       18:05    3               1486   1
4   T108         海南     14:45       14:45    4                4469  3
5   T989         长沙     9:00        9:20     1                0     0
6   T989         重庆      12:00      12:00    2                1445  1


题目意思 就是 如果  始法站是 北京 终点站是 重庆  如何 找到中转站(长沙)
回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-12-18 12:30:01 | 显示全部楼层
select a.ScheduleCode ,a.cityname ,b.ScheduleCode , b.cityname
from T_Schedule_Detail a left join T_Schedule_Detail b
     on a.cityName = b.cityName  and a.ScheduleCode <> b.ScheduleCode
where exists (select 1 from T_Schedule_Detail
              where ScheduleCode = a.ScheduleCode and cityName = '北京') and
      exists (select 1 from T_Schedule_Detail
              where ScheduleCode = b.ScheduleCode and cityName = '重庆)
      
回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-12-18 13:00:01 | 显示全部楼层

--建表(只建立相关字段)
create table T_Schedule_Detail
(
cid int,
ScheduleCode varchar(4),
cityName varchar(10)
)

insert into T_Schedule_Detail select 1,   'T108',         '北京'
insert into T_Schedule_Detail select 2,   'T108',         '郑州'
insert into T_Schedule_Detail select 3,   'T108',         '长沙'
insert into T_Schedule_Detail select 4,   'T108',         '海南'
insert into T_Schedule_Detail select 5,   'T989',         '长沙'
insert into T_Schedule_Detail select 6,   'T989',         '重庆'

--查询
select a.ScheduleCode ,a.cityname ,b.ScheduleCode , b.cityname
from T_Schedule_Detail a left join T_Schedule_Detail b
     on a.cityName = b.cityName  and a.ScheduleCode <> b.ScheduleCode
where exists (select 1 from T_Schedule_Detail
              where ScheduleCode = a.ScheduleCode and cityName = '北京') and
      exists (select 1 from T_Schedule_Detail
              where ScheduleCode = b.ScheduleCode and cityName = '重庆')

--结果
ScheduleCode cityname   ScheduleCode cityname   
------------ ---------- ------------ ----------
T108         长沙         T989         长沙

(所影响的行数为 1 行)

--其意为:乘坐T108次在长沙转T989次
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-12-18 20:15:01 | 显示全部楼层
恩 高手啊  可以啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表