我正在与航空公司,机场及其路线合作。
我有两个表路线和补充。 补充表是通过搜索共享节点的路线段构建的。 (B是路由A-> B-> C中的节点)SQL查询问题
我想构建补充表,以便通过节点到达的目标是唯一的。换句话说,航空公司不应该能够自己到达目的地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,节点,destination_airport
补充表中有什么?你能提供一些样本数据吗? – 2011-03-31 20:09:47
条件t1.destination!= t2.destination似乎是易受影响的,我们可以有类似A-> B-> C和A-> B-> D的情况。所以这两个记录都会满足条件,因此结果数量将会更多。 – 2011-03-31 20:11:15
如果规则是“一家航空公司不应该能够自己到达目的地C”。那么为什么这是在你的查询中:“t1.airline_id1 = t2.airline_id”? – user662852 2011-03-31 20:11:51