2012-08-31 73 views
-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) 
+2

你能發佈整個SQL嗎?很難說出你要在這裏做什麼。 –

+0

請添加更多信息,如完整的SQL語句,您試圖實現的目標,您已經嘗試過的內容...... – Xuntar

+0

是您的完整SQL嗎?如果是這樣,你就錯過了Select和From部分。如果不確定在from語句中定義別​​名(N)。 –

回答

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 

我看到的第一個問題是,你不能在你的SELECT語句中使用定義在WHERE語句中的別名(所以你不能使用Loc_Id你必須使用Loc.Id)。

讓我知道這是否適用於您或您仍然有錯誤。

我也注意到你使用N.File_Id和N.Id,你確定你的表中有這兩列嗎?你可以發佈你的模式?

+0

是否會是NLoc.Loc_Id或Loc.Id又是個問題? –

+0

@NiladriBiswas自從他加入這兩個專欄後,兩人的價值都是相同的,所以他使用哪兩個並不重要。 –

+0

是的..你說得對...我有什麼不對的事情發生在我身上..應該搬出來。現在屏幕...需要認真休息。 –

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) 
+0

您的代碼以及評論都有錯誤。你不能在同一個括號內使用表名和列,它必須是[N]。[File_Id],但是沒有必要這樣做。你也不能在where語句中使用Loc_Id。 –

+0

對不起括號錯誤。我已更新。 –