Sql 表的子句条目中缺少
我正在尝试使用Sql 表的子句条目中缺少,sql,postgresql,Sql,Postgresql,我正在尝试使用内部联接视图和表,使用以下查询 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 (AcGr
内部联接视图和表,使用以下查询
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"
因为gtab82表不在FROM或JOIN子句中。在这些情况下,请参考gtab82表:gtab82.memno和gtab82.memacid
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
子句中使用别名。您可能需要查看代码的这一方面。呃,是的。您在SELECT
和ON
子句中引用了gtab82
,但尚未在FROM
或JOIN
中指定它。您似乎还试图将vcustomer
加入到它自己中这实际上对我很有用,因为我的代码中有一个硬编码查询,它是从数据库中的一个视图中选择的,因此别名的问题被混淆了。我看不出这是如何回答问题的,只是很难注意到对查询的更正(将“内部联接vcustomer”更改为“内部联接gtab82”)。