gpt4 book ai didi

mysql - SQL查询问题

转载 作者:行者123 更新时间:2023-11-29 02:35:38 26 4
gpt4 key购买 nike

我正在与航空公司、机场及其航线合作。
我有两个表路线和补充。补表是通过搜索共享一个节点的路由段来构建的。 (B是路径A->B->C中的节点)

我想建立补表,使通过节点到达的目的地是唯一的。换句话说,一家航空公司不应该能够独自到达目的地 C。

建立补表后,我尝试:

SELECT t1.*
FROM complement AS t1
, routes AS t2
WHERE t1.airline_id1 = t2.airline_id
AND t1.source = t2.source
AND t1.destination != t2.destination

*airline_id1 指A至B航线的第一家航空公司。(A->B->C航线)
原始表有大约 650,000 条记录,但我通过此查询获得了超过 1000 万条记录。我确定我做错了什么。

任何帮助将不胜感激!

编辑:补充表中的一些字段是 airline_id1、airline_id2、source_airport、node、destination_airport

最佳答案

complement 表是否有一个 airline_id2 字段(用于行程的 B->C 部分)?

这将给出所有“补充”路线,其中两部分由不同的航空公司完成:

SELECT c.*
FROM complement AS c
WHERE c.airline_id1 != c.airline_id2

或者你可能想要:

(对于没有从 A 到 C 的“直达”航线的航空公司,从 A 到 C 的所有“补充”航线)。

SELECT c.*
FROM complement AS c
LEFT JOIN routes AS r
ON c.source_airport = r.source_airport
AND c.destination_airport = r.destination_airport
AND c.airline_id1 = r.airline_id
WHERE r.id IS NULL

关于mysql - SQL查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5505673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com