Отсутствует запись FROM-clause для таблицы

Я пытаюсь использовать представление inner join и таблицу, используя следующий запрос

SELECT 
   AcId, AcName, PldepPer, RepId, CustCatg, HardCode, BlockCust, CrPeriod, CrLimit, 
   BillLimit, Mode, PNotes, gtab82.memno 
FROM
   VCustomer 
INNER JOIN   
   vcustomer AS v1 ON gtab82.memacid = v1.acid 
WHERE (AcGrCode = '204' OR CreDebt = 'True') 
AND Masked = 'false'
ORDER BY AcName

и ошибка

missing FROM-clause entry for table "gtab82"

Ответы

Ответ 1

SELECT 
   AcId, AcName, PldepPer, RepId, CustCatg, HardCode, BlockCust, CrPeriod, CrLimit, 
   BillLimit, Mode, PNotes, gtab82.memno 
FROM
   VCustomer AS v1
INNER JOIN   
   gtab82 ON gtab82.memacid = v1.AcId 
WHERE (AcGrCode = '204' OR CreDebt = 'True') 
AND Masked = 'false'
ORDER BY AcName

Обычно вы используете псевдоним для имени таблицы, когда вам нужно префикс столбца с именем таблицы из-за дублирования имен столбцов в соединенных таблицах, а имя таблицы длинное или когда таблица присоединена к себе. В вашем случае вы используете псевдоним для VCustomer, но используете его только в предложении ON по неопределенным причинам. Вы можете просмотреть этот аспект своего кода.

Ответ 2

Поскольку эта таблица gtab82 не находится в вашем предложении FROM или JOIN. В этих случаях вы ссылаетесь на таблицу gtab82: gtab82.memno и gtab82.memacid