【发布时间】:2017-07-24 18:58:09
【问题描述】:
我有以下 SQL 查询,使用这个问题作为指导:SQL query return data from multiple tables
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 新手,不知道语法错误在哪里。
【问题讨论】:
-
你错过了
SELECT。 -
Access 需要在每个连接子句周围加上括号,所以它类似于
FROM ((FGEJunction a JOIN Parameters b ON a.idParameters = b.idParameters) JOIN Groups c ON a.idPrimaryGroup = c.idGroups AND a.idSecondaryGroup = c.idGroups) JOIN Files d ON c.idFiles = d.idFiles。请注意,这是访问要求,在“标准”SQL 中不需要 -
您是否使用查询生成器来帮助获取语法?
-
@Eric 不,我只是没有包含整个查询。这只是 FROM 子句。我还有一个 SELECT 和一个 WHERE 子句。
-
Access SQL 要求
JOIN明确为INNER、LEFT或RIGHT。