sql 2003 两个子查询还能再进行连接查询吗

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:45:50
我有2张表:表1放的是:列车班次(主键),起点,终点。表2放的是:列车班次,站点(同一个班次中的所有站点,包括起点和终点)。 我想查的是中转站: 比如天津到成都,没有直达车(就是表1不存在这条数据),要查有哪些从天津出发的站,这站又可以到达成都。我是这样查的 :
select 列车班次,站点 from 表2 where 列车班次 in(select 列车班次 from 表1 where 起点 = '天津') 。 这样得出所有从天津出发的班次和站点,同样方法查出所有到成都的班次,查出两个子查询,然后我就不知道怎么查出这两个子查询中的相同的站点了... 哪位高手教教我啊~
请说详细点啊,我都不知道怎么弄啊~

select distinct 列车班次 from 表2
where 列车班次 in(
select 列车班次 from 表1 where 起点 = '天津'
) and 站点='成都'

select 后面的“distinct”表示去掉重复项

就两个条件:
1、起点是天津
列车班次 in(select 列车班次 from 表1 where 起点 = '天津')

2、经过成都
站点='成都'

可以,

1.可以,但是我不推荐,子查询越多,查询速度越慢

子查询的效率相对还是比链接表查询效率高,所以能用子查询的实现还是少用链接表,
可以建视图,然后做内链接查询
比如这样select a.name a.age from table_name a join table_name b where a.id=b.id
按照我的模式啊,你首先当然要建表啊,最好有自己的机器,上机器测试啊!
然后建议你到www.w3school.com.cn上边应该也有点资料的!..