【问题标题】:MS ACCESS SQL Join SyntaxMS ACCESS SQL 连接语法
【发布时间】:2015-05-31 22:07:11
【问题描述】:

如果我删除联接,我可以运行此查询,但是一旦我添加联接,我会收到以下错误:

运行时错误“3135”:连接操作中的语法错误

sourceDB = "C:\sourcedb.accdb"

SQL = "SELECT e1.lid " & _
        "FROM (eventlog e1 IN  '" & sourceDB & "'" & _
        "LEFT JOIN eventlog e2 ON e2.lid = e1.lid)"

关于我可能做错的任何建议

【问题讨论】:

  • 试试as e1as e2。据我所知,MS Access 需要as 作为表别名。

标签: sql ms-access join vba left-join


【解决方案1】:

尝试将您的代码更改为以下内容:

sourceDB = "C:\sourcedb.accdb"

SQL = "SELECT e1.lid " & _
      "FROM [" & sourceDB & "].[eventlog] AS e1 " & _
      "LEFT JOIN eventlog AS e2 ON e2.lid = e1.lid"

【讨论】:

  • 这就是我正在寻找的答案。我的加入都错了。
【解决方案2】:

您的查询中有一个明显的语法错误:连接必须在两个表之间,而不是表和数据库名称。看看这个典型的例子(re:https://msdn.microsoft.com/en-us/library/office/ff198084.aspx)并相应地更正你的查询:

SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products 
ON Categories.CategoryID = Products.CategoryID;

希望这会有所帮助。最好的问候,

【讨论】:

  • 有道理,但连接是在 eventlog 1 和 eventlog2 之间。除非 IN 语句是错误的部分?
  • 而我的 IN 站位错了。感谢您的帮助。
  • 我已经扩展了答案。如果您对答案感到满意,请将其标记为已接受。祝你的项目好运。最好的问候,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多