【问题标题】:Two Inner Joins in OleDb SQL query [duplicate]OleDb SQL查询中的两个内部联接[重复]
【发布时间】:2018-08-06 09:12:57
【问题描述】:

我正在尝试使用 OleDbCommand 对 Access 数据库 (.accdb) 进行 SQL 查询。

虽然此命令运行良好(在 OleDbCommand.ExecuteReader() 中):

string command =
   "SELECT cred.* " +
   "FROM TB_CREDENTIALS cred " +
   "INNER JOIN TB_REL_USERS_CREDENTIALS rel ON cred.CRED_ID = rel.REL_USR_CRED_CRED_ID ";

另一个没有,我不明白为什么(我看到的所有示例都使用完全相同的语法):

string command =
   "SELECT cred.* " +
   "FROM TB_CREDENTIALS cred " +
   "INNER JOIN TB_REL_USERS_CREDENTIALS rel ON cred.CRED_ID = rel.REL_USR_CRED_CRED_ID " +
   "INNER JOIN TB_USERS usr ON usr.USR_ID = rel.REL_USR_CRED_USER_ID ";

给出的例外是以下System.Data.OleDb.OleDbException

查询表达式'cred.CRED_ID = rel.REL_USR_CRED_CRED_ID INNER JOIN TB_USERS usr ON usr.USR_ID = rel.REL_USR_CRED_USER_I'(message is cut here)中的语法错误(缺少运算符)@

版本和详细信息:

  • 数据库是在 Access 2010 上创建的 .accdb 文件
  • 在 C# 中使用System.Data.OleDb.OleDbConnection 创建连接
  • 连接提供者是"Microsoft.ACE.OLEDB.12.0"

(这似乎是一个无用的查询,但我当然会添加一个WHERE usr.SOME_FIELD = some_condition

【问题讨论】:

  • 如果对您有帮助,请验证我的回答。
  • 当然 :) -- 等待时间限制。
  • 对不起,你是对的!谢谢你。我是回答问题的新手。

标签: c# sql ms-access-2010 oledb oledbcommand


【解决方案1】:

“对于多表连接,您必须将额外的连接嵌套在括号中:”

SQL multiple join statement

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    相关资源
    最近更新 更多