2017-07-24 61 views
0

我有以下SQL查詢,利用這個問題爲導向,提出:How can an SQL query return data from multiple tablesMicrosoft Access中的這個SQL查詢有什麼問題?

SELECT 
    Parameters.[New Parameter Number], 
    Parameters.[New Parameter Name], 
    Files.[File Names], 
    Groups.[Group Names] 

FROM 
    (((FGEJunction a 
     INNER JOIN Parameters b ON a.idParameters = b.idParameters) 
     INNER JOIN Groups c ON a.idPrimaryGroup = c.idGroups 
     AND a.idSecondaryGroup = c.idGroups) 
     INNER JOIN Files d ON c.idFiles = d.idFiles) 

WHERE 
    Parameters.[New Parameter Number] 
     LIKE ([Forms]![Key word search parameters]![ParameterSearchBox].[Text] & "*") OR 
    Parameters.[New Parameter Name] 
     LIKE ([Forms]![Key word search parameters]![ParameterSearchBox].[Text] & "*") OR 
    Files.[File Names] 
     LIKE ([Forms]![Key word search parameters]![ParameterSearchBox].[Text] & "*") OR 
    Groups.[Group Names] 
     LIKE ([Forms]![Key word search parameters]![ParameterSearchBox].[Text] & "*"); 

當我把它在MS Access,按「運行」,它只是說「語法錯誤在FROM子句」。它還在FROM子句的第一行中突出顯示了「參數」一詞。這個詞的意思是指一個名爲「參數」的表格。

我是新來的SQL和Access,我不知道語法錯誤在哪裏。

+0

你錯過了'SELECT'。 – Eric

+3

Access要求各地各括號加入條款,所以它會像'FROM ((FGEJunction一個 JOIN參數B ON a.idParameters = b.idParameters) JOIN C組 ON a.idPrimaryGroup = c.idGroups AND a.idSecondaryGroup = c.idGroups) JOIN文件d ON c.idFiles = d.idFiles'。請注意,這是Access要求,「標準」SQL中不要求 –

+0

您是否使用查詢生成器來幫助獲取語法? – June7

回答

1

參數是一個關鍵字。如果你有一個帶有這個名字的表,你需要用括號[Parameters]來包裝它。

另外,您已爲[參數]分配了名爲b的別名。然後,您需要將其用作其他地方的名稱。例如,您的選擇部分應該看起來像這樣...

SELECT 
    b.[New Parameter Number], 
    b.[New Parameter Name], 
    d.[File Names], 
    c.[Group Names] 

等等。

+0

如果我將該表稱爲SELECT語句中的別名,它將如何知道在哪裏可以找到新的參數號? SQL是否從上到下執行......? – danielcg

+1

查詢引擎解析您的查詢並將其解決。 –