2015-03-20 2 views
-2

Я бегу запрос какОшибка бросания запросов; «Столбец двусмысленно определен»

SELECT LOCATION_OID,UPPER(NAME) AS LOCATION_NAME FROM LOCATION LEFT OUTER JOIN LOCATION_CHILD_LOCATION parent on (parent.LOCATION_OID = LOCATION.LOCATION_OID) 

Есть две таблицы МЕСТОПОЛОЖЕНИЕ и LOCATION_CHILD_LOCATION, расположение имеет некоторые 456 записей и location_child_location имеет 4 записей. Записи в location_child_location сопоставляются с location_oid из родительской таблицы местоположения i.e. Почему этот запрос дает ошибку?

+0

Какая ошибка? –

ответ

1

Вы должны указать таблицу, из которого вы хотите LOCATION_OID еще анализатор перепутать, какой стол его должен искать выборку данных. Попробуйте это:

SELECT LOCATION.LOCATION_OID,UPPER(NAME) AS LOCATION_NAME 
FROM LOCATION LEFT OUTER JOIN LOCATION_CHILD_LOCATION parent 
on (parent.LOCATION_OID = LOCATION.LOCATION_OID) 
0

Вы должны добавить имя таблицы перед LOCATION_OID в пункте select:

SELECT LOCATION.LOCATION_OID,UPPER(NAME) AS LOCATION_NAME FROM LOCATION LEFT OUTER JOIN LOCATION_CHILD_LOCATION on (parent.LOCATION_OID = LOCATION.LOCATION_OID) 
0

Try ниже запроса, в котором Нейминг правильно упоминается, чтобы избежать конфликта в таблице Namings:

SELECT l.LOCATION_OID,UPPER(NAME) AS LOCATION_NAME 
FROM LOCATION as l 
LEFT OUTER JOIN LOCATION_CHILD_LOCATION parent on (parent.LOCATION_OID = LOCATION.LOCATION_OID) 
0

Используйте псевдонимы для каждой таблицы вместо смешивания как подход (с и без псевдонимов):

SELECT L.LOCATION_OID 
    ,UPPER(L.NAME) AS LOCATION_NAME 
FROM LOCATION L 
LEFT OUTER JOIN LOCATION_CHILD_LOCATION P ON P.LOCATION_OID = L.LOCATION_OID 

Надеюсь, это поможет.

Смежные вопросы