2014-12-04 53 views
0

我目前正試圖在同一個表上加入兩次。MySQL在'on子句'中加入未知列

我有一個類似於下面的表:

旅行:

arrival_loc_code 
leaving_loc_code 

有與這些位置值,另一個表:

地點:

location_code (pk) 
location 

我正在嘗試獲取到達的位置並根據位置co離開在旅行中。我目前的嘗試都導致:

select leavingloc.location,arrivalloc.location from trip 
    join locations as leavingloc on trip.departureloccode = locations.locationcode 
    join locations as arrivalloc on trip.arrivalloccode = locations.locationcode; 

信息我:

ERROR 1054 (42S22): Unknown column 'locations.locationcode' in 'on clause' 

在這一點上我敢肯定有東西,我理解錯誤,並希望得到任何幫助。

回答

3

你有你的表別名,但沒有使用連接子句中的別名,所以MySQL越來越困惑:

select leavingloc.location, arrivalloc.location from trip 
    join locations as leavingloc on trip.departureloccode = leavingloc.locationcode 
    join locations as arrivalloc on trip.arrivalloccode = arrivalloc.locationcode; 
+0

我明白我的錯誤了。非常感謝你 – awmusic12635 2014-12-04 15:55:21

0

這是因爲您的alisas的名稱與您正在使用的名稱不同。

變化

join locations as leavingloc on trip.departureloccode = locations.locationcode 
    join locations as arrivalloc on trip.arrivalloccode = locations.locationcode; 

join locations as leavingloc on trip.departureloccode = leavingloc.locationcode 
    join locations as arrivalloc on trip.arrivalloccode = arrivalloc.locationcode; 
0

在您的條款,通過你給他們的別名(leavingloc或arrivalloc),而不是通過借鑑「位置」表「位置'