2016-03-22 93 views
0

我有一個MySQL表航點,其中一個行程的所有航點都保存:Mysql的自連接,而不是GROUP_CONCAT

ID,TripID,Location 
1 ,5  ,Barcelona 
2 ,5  ,Madrid 
3 ,5  ,Valencia 
4 ,6  ,Berlin 
5 ,6  ,Hamburg 
6 ,6  ,Munich 

現在我希望得到所有可能的直航覆蓋整個行程

TRIPID,出發,目的地

5,Barcelona,Madrid 
5,Barcelona,Valencia 
5,Madrid,Valencia 
6,Berlin,Hamburg 
6,Berlin,Munich 
6,Hamburg,Munich 

我與GROUP_CONCAT嘗試過,但沒有幫助

有什麼想法?

回答

1

你有一個圖表問題,MySQL沒有很好的解決這些問題。缺少的功能是遞歸查詢。

在你的情況,不過,我覺得你可以做你想做一個自聯接什麼:

select wp1.tripid, wp1.location, wp2.location 
from Waypoint wp1 join 
    Waypoint wp2 
    on wp1.tripid = wp2.tripid and wp1.id < wp2.id; 

注意<條件。它過濾掉「馬德里,巴塞羅那」形式的重複。

+0

非常感謝這麼多! – user1720222