两个 INNER JOIN ODBC MSAccess 异常与查询

Posted

技术标签:

【中文标题】两个 INNER JOIN ODBC MSAccess 异常与查询【英文标题】:Two INNER JOIN ODBC MSAccess exception with query 【发布时间】:2014-04-25 09:56:08 【问题描述】:

我有一个问题.. 我想从 c# 应用程序使用 odbc 到 msAccess 连接到我的数据库。我有异常错误。请我的查询...它应该可以工作,但显然我在这里做错了事情..

ERROR [42000] [Microsoft][ODBC Microsoft Access Driver] 语法错误 查询表达式中的(缺少运算符) '[autoResults].[autoStats]=[autoStats].ID INNER JOIN [users] ON [users].ID=[autoStats].userID

string queryString =@"
SELECT [erNumber].[autoResults],
[passedTesting].[autoResults],
[releaseVersion].[autoStats],
[lastFunction].[autoResults],
[startTime].[autoStats],
[Name].[users]
FROM [autoStats] 
INNER JOIN [autoResults] 
 ON [autoResults].[autoStats]=[autoStats].ID
INNER JOIN [users]
 ON [users].ID=[autoStats].userID
WHERE [erNumber].[autoResults] LIKE '" + TextBox1.Text + "'";

【问题讨论】:

【参考方案1】:

对多个 JOIN 的访问可能很繁琐,并且通常需要将它们括在括号中。所以不是

FROM [autoStats] 
INNER JOIN [autoResults] 
 ON [autoResults].[autoStats]=[autoStats].ID
INNER JOIN [users]
 ON [users].ID=[autoStats].userID

试试

FROM 
    (
        [autoStats] 
        INNER JOIN 
        [autoResults] 
            ON [autoResults].[autoStats]=[autoStats].ID
    )
    INNER JOIN 
    [users]
        ON [users].ID=[autoStats].userID

【讨论】:

据我所知,当您有多个 JOIN 时,JET 总是需要括号 谢谢!但是..这样我得到了以下.. > 错误 [07002] [Microsoft][ODBC Microsoft Access Driver] 参数太少。预期 6. 对此有什么解决方案吗?我尝试用 ( ) 分隔 INNER JOINS,但它仍然无法正常工作。

以上是关于两个 INNER JOIN ODBC MSAccess 异常与查询的主要内容,如果未能解决你的问题,请参考以下文章

两个 INNER JOIN 的 FULL OUTER JOIN

inner join 和outer join的区别

关于SQL数据库中cross join 和inner join用法上的区别?

流分析:Inner Join 两个子查询

Inner_join 有两个条件和区间内的区间条件

在 MS Query 中使用多个 INNER JOIN 的 FROM 子句中的子查询的语法