SQL实战 | 自连接:查找车辆换乘信息


一 题目

找出所有从 Craiglockhart 出发,经过一次换乘可以到达 Sighthill 的公交换乘方案。

输出:第一程的车号和公司、换乘站站名、第二程的车号和公司。


二 数据表结构:

数据表 stops:

id:站点编号

name:站点名称

数据表 route:

num:公交车号

company:公交公司

pos:在线路中的顺序

stop:站点编号,对应 stops 中的 id


三 参考答案:

参考答案1:

参考答案2:


四 输出示例



五 技术说明

1. WITH ...  AS ... :

定义的临时结果集,方便分步骤写复杂查询,多个结果集中间用逗号隔开

此处定义的bus1和bus2,分别得出途经Craiglockhartd、Sighthill的公交车号和公司

2. 答案1中JOIN r3、r4 ,以及答案2中JOIN tr1、tr2 :

通过连接找换乘站

3. JOIN stops transfer:

给出换乘站的名字

4. DISTINCT:

避免重复组合

5. WHERE 中的 NOT(...):

确保第一程和第二程不是同一辆车







说明:

本题参考自 SQLZoo(sqlzoo.net),内容为个人学习总结,欢迎交流分享,转载请注明来源


— END —

数据分析,一起努力。

Thryze|数据分析 × AI能力成长 × 效率工具探索

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容