-6

これが私のSQLステートメントです:

 N.File_Id = ServerFiles.Id WHERE [...]

「File_Id」はピンク色で強調表示されていますが、これを上書きできるものはありますか? これが、私の SQL が結果セットを返さない理由だと思います。

ありがとう

修正コード:

SELECT 
   N.Id, NLoc.N_Id, Loc.Id as Loc_Id, 
   CAST(N.Text AS TEXT) as Text, FilePath, 
   CAST(N.Title AS TEXT) as Title, N.CreatD as RegDate
FROM 
   NLoc 
JOIN N ON NLoc.Not_Id = N.Id 
JOIN Loc ON NLoc.Loc_Id = Loc.Id
JOIN ServerFiles ON N.File_Id = ServerFiles.Id 
WHERE 
    Loc_Id IN (1)
4

2 に答える 2

1

これを試して:

SELECT 
    N.Id
    , NLoc.N_Id
    , Loc.Id as Loc_Id
    , CAST(N.Text AS TEXT) as Text
    , FilePath
    , CAST(N.Title AS TEXT) as Title
    , N.CreatD as RegDate 

FROM NLoc 
     JOIN N  ON NLoc.Not_Id=N.Id 
     JOIN Loc ON NLoc.Loc_Id=Loc.Id 
     JOIN ServerFiles ON N.File_Id=ServerFiles.Id 
WHERE Loc.Id = 1

最初の問題は、WHERE ステートメント内の SELECT で定義されたエイリアスを使用できないことです (したがって、Loc_Id を使用できないため、Loc.Id を使用する必要があります)。

これでうまくいくか、まだエラーが発生するかをお知らせください。

また、N.File_Id と N.Id を使用していることにも気付きました。テーブルにこれらの列の両方があると確信していますか? スキーマを投稿できますか?

于 2012-08-31T11:59:53.357 に答える
0

[N].[File_Id]のように[ ]内に配置します。

SELECT 
N.Id, NLoc.N_Id, 
Loc.Id as Loc_Id, CAST(N.Text AS TEXT) as Text, 
FilePath, CAST(N.Title AS TEXT) as Title,
 N.CreatD as RegDate 

 FROM NLoc 
 JOIN N  ON NLoc.Not_Id=N.Id 
 JOIN Loc ON NLoc.Loc_Id=Loc.Id 
 JOIN ServerFiles ON [N].[File_Id]=ServerFiles.Id 
 WHERE NLoc.Loc_Id IN (1) -- or Loc.Id IN (1) 
于 2012-08-31T11:53:58.890 に答える