0
我有表:如何尋找更高的價值
City:
id | name
1 | New York
2 | Amsterdam
3 | Paris
4 | London
Trip:
id | name
1 | aaaa // New York --> Paris --> London
2 | bbbb // London --> Paris --> Amsterdam
3 | cccc // London --> New York --> Amsterdam --> Paris
4 | dddd // Paris --> London
5 | eeee // Amsterdam --> London
TripDetails:
id | tripId | cityId| order
1 | 1 | 1 | 1
2 | 1 | 3 | 2
3 | 1 | 4 | 3
4 | 2 | 4 | 1
5 | 2 | 3 | 2
6 | 2 | 2 | 3
7 | 3 | 4 | 1
8 | 3 | 1 | 2
9 | 3 | 2 | 3
10 | 3 | 3 | 4
11 | 4 | 3 | 1
12 | 4 | 4 | 2
13 | 5 | 2 | 1
14 | 5 | 4 | 2
現在我想找到使用人次通過城市的城市。例如,如果我去阿姆斯特丹,那麼我想要收到巴黎(旅程ID = 3)和倫敦(旅程ID = 5)。不是紐約,因爲在3號旅行中紐約在阿姆斯特丹之前。
其他例如:
,如果我得到紐約的話,我應該接受所有城市 - 巴黎(跳閘1),倫敦(跳閘1)和阿姆斯特丹(跳閘3)。
如果我得到巴黎,那麼我應該只收到倫敦和阿姆斯特丹。
所以,我對於巴黎(ID:3):
SELECT * FROM "City"
LEFT JOIN "TripDetails" ON City.id = TripDetails.cityId
WHERE TripDetails.cityId = 3
AND ????
我該怎麼辦呢?
我可以根據需要更改數據庫的整個結構。我使用PHP和MySQL。
完美,非常感謝:) – regu 2015-02-23 22:37:26