如何使用内/外组合在Access中加入4+表?

Chl*_*loe 5 sql sql-server ms-access

我无法在MSAccess中找到使用外连接加入4个或更多表的方法.它适用于SQL Server,但不适用于Access.我不相信这是可能的.我有表A,B,C,D和E.我需要像这样加入表:

  • 左外连接B.
  • 左外连接C.
  • 内连接D.
  • B内连接E.

当您在FROM子句中使用LEFT/RIGHT/INNER JOINS时,Access不允许您在where子句中使用常规连接.如果你这样做,我会得到非常非常模糊的错误,例如"不支持JOIN表达式"或"查询表达式中的语法错误(缺少运算符)".我可以使用传递查询,但我不知道该怎么做.我可以加入的大多数表是3,外部连接如下:

FROM(Ab = Bb上的左连接B)
在Ac = Cc上离开连接C.

不要说任何关于'外部'关键字的内容也不允许,因为虽然它不在文档中,但它确实接受了它.

Guf*_*ffa 5

在Access中,您一次只能加入两个结果.要加入更多表,您需要更多括号:

from
   (
      (
         (
            A inner join D on D.id = A.id
         )
         left join B on B.id = A.id
      )
      inner join E on E.id = B.id
   )
   left join C on C.id = A.id
Run Code Online (Sandbox Code Playgroud)

  • "LENER JOIN或RIGHT JOIN可以嵌套在INNER JOIN中,但是INNER JOIN可以不嵌套在LEFT JOIN或RIGHT JOIN中." http://office.microsoft.com/client/helppreview.aspx?AssetID=HA012314871033&QueryID=QPtFEJVUy&respos=6&rt=2&ns=MSACCESS&lcid=1033&pid=CH100728991033 (2认同)

Cru*_*han 2

解决此问题的常见方法是使用保存的查询来连接第一对表,并使用从那里开始的连续查询向上构建。尽管对未来需要哪些数据访问路径的一些预先考虑可以帮助保持事情合理的逻辑性,但它很混乱。