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

时间:2009-08-01 20:59:44

标签: 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(A.b = B.b上的左连接B)
左边加入C在A.c = C.c

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

一个常见的解决方法是使用保存的查询来加入第一对表,并使用来自那里的连续查询进行向上构建。它很混乱,虽然有些人预见到将来需要哪些数据访问路径可以帮助保持合理的逻辑。