我正在與航空公司,機場及其路線合作。
我有兩個表路線和補充。 補充表是通過搜索共享節點的路線段構建的。 (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