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

2025-07-25  本文已影响0人  AureSong


一 题目

找出所有从 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能力成长 × 效率工具探索

上一篇 下一篇

猜你喜欢

热点阅读