sql - 构造一个 SQL 查询,其中包含来自单个表的两条记录的结果
问题描述
我不熟悉 SQL。
我有巴士时刻表。主表bus_races具有以下列:id、race_id、station_id和time。每场巴士比赛都有其途中每个巴士站的记录。
例如
id race station time
8132 1 1 05:31:00
8133 1 2 05:40:00
8134 1 4 05:50:00
8135 2 2 06:50:00
8136 2 4 06:55:00
8137 2 5 07:15:00
这意味着公交路线 1 有三个站点:站点 1 在 5.31、站点 2 在 5.40、站点 4 在 5.50,并且公交路线有站点:站点 2 在 6.50、站点 4 在 6.55、站点 5 在 7.15。
... ETC
我如何构造一个查询,它返回在第 2 站和第 6 站停止的所有比赛的race_id,第 2 站必须早于第 6 站。
解决方案
select a.race_id
from bus_races a join bus_races b
on a.race_id = b.race_id and a.station_id = 2 and b.station_id = 6
where a.time < b.time
推荐阅读
- rest - Spring-boot:在 REST @ 服务器端设置超时
- javascript - Jupyter nbconvert 创建的reveal.js 幻灯片中的滚动问题
- jenkins - 无法使用主动选择插件填充动态参数
- vb.net - 邮箱名称不允许。发件人地址被拒绝。未登录
- php - PHP 分段上传
- actions-on-google - 如何在订单预览中添加收货地址详细信息?
- python - Pandas 重新排列多索引系列
- javascript - 如何将多个数据作为对象从 React 中的子组件发送到父组件?
- powershell - 即使没有运行 chrome 进程,也要执行“taskkill /f /im chrome.exe”
- javascript - 关于数组创建的思考