1. ホーム
  2. sql

[解決済み] テーブルのFROM句の項目がない [終了しました] 。

2022-01-25 05:19:17

質問

を使おうとしています。 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"

解決方法は?

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 節は、不確かな理由によるものです。あなたのコードのその点を見直すとよいでしょう。