Получение столбца, неоднозначно определенного в Oracle SQL - PullRequest
0 голосов
/ 03 сентября 2018

В Oracle при добавлении предложения where с приведенным ниже запросом я получаю сообщение об ошибке

Колонка двусмысленно определена

Запрос:

SELECT
    t1.*, t2.*
FROM
    NM_APPLICATION t1
LEFT JOIN 
    NM_QUOTA t2 ON t2.QUOTA_ID = t1.QUOTA_ID
WHERE
    ACTIVE_FLAG = 'Y'
ORDER BY
    MERIT_POSITION DESC

Пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Скорее всего, проблема в том, что обе таблицы NM_APPLICATION и NM_QUOTA имеют столбец с именем ACTIVE_FLAG. Для этого нужно решить, какой столбец таблицы вы хотите использовать, а затем предоставить псевдоним этой таблицы:

SELECT t1.*, t2.*
FROM NM_APPLICATION t1
LEFT JOIN NM_QUOTA t2
    ON t2.QUOTA_ID = t1.QUOTA_ID
WHERE t1.ACTIVE_FLAG = 'Y'        -- or t2.ACTIVE_FLAG
ORDER BY MERIT_POSITION DESC

Кстати, если этот ответ будет правильным, то это может указывать на проблему разработки, заключающуюся в том, что две таблицы в одной и той же схеме имеют столбец, в котором могут храниться одинаковые или похожие данные. Итак, вы можете переосмыслить дизайн вашего стола.

0 голосов
/ 03 сентября 2018

Вам нужны префиксные столбцы ACTIVE_FLAG или / и MERIT_POSITION с псевдонимом t1 или t2, если существует в обеих таблицах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...