You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改SQL查询以获取未执行的飞船-目的地组合数据?

修改SQL查询以包含所有飞船-目的地组合

要获取所有飞船与目的地的组合(包括未执行过航班的组合),你需要先生成所有飞船和目的地的全量组合,再通过左连接关联后续的航班、乘客数据,具体修改如下:

SELECT 
    ship.shipname, 
    destination.name AS destination_name, 
    COUNT(flight_person.person_id) AS passenger_count
FROM 
    ship
CROSS JOIN 
    destination
LEFT JOIN 
    flight ON flight.ship_id = ship.id AND flight.destination_id = destination.id
LEFT JOIN 
    flight_person ON flight_person.flight_id = flight.id
LEFT JOIN 
    person ON person.id = flight_person.person_id
GROUP BY 
    ship.shipname, destination.name
ORDER BY 
    ship.shipname, destination.name;

关键修改说明:

  • CROSS JOIN destination:生成所有飞船和目的地的笛卡尔积,确保每个飞船都能和每个目的地形成一条记录,不管有没有实际航班。
  • LEFT JOIN 后续表:用左连接替代原来的内连接,这样即使某个飞船-目的地组合没有对应的航班、乘客,也会保留这条记录,对应的乘客数会被统计为0。
  • COUNT(flight_person.person_id):因为左连接后,没有乘客的记录中flight_person.person_id为NULL,COUNT函数会忽略NULL值,自然得到0的结果。

修改后的查询会输出所有可能的飞船-目的地组合,其中未执行过航班的组合乘客数为0。

内容的提问来源于stack exchange,提问作者Alexey Ivanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 00:15:36