sql - 如何在 Access 中使用内部/外部组合连接 4 个以上的表?

标签 sql sql-server ms-access

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

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

当您在 FROM 子句中使用 LEFT/RIGHT/INNER JOINS 时,Access 不允许您在 where 子句中使用常规联接。如果这样做,我会收到非常非常模糊的错误,例如“不支持 JOIN 表达式”或“查询表达式中的语法错误(缺少运算符)”。我也许可以使用传递查询,但我还不知道该怎么做。我最多可以连接 3 个表,其外部连接如下所示:

FROM(A 在 A.b 上左连接 B = B.b)
在 A.c 上左连接 C = C.c

也不要说任何有关“outer”关键字不允许的内容,因为尽管它不在文档中,但它确实接受它。

最佳答案

在 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

关于sql - 如何在 Access 中使用内部/外部组合连接 4 个以上的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1217483/

相关文章:

mysql - MySQL 命令的奇怪行为 NOT IN | GROUP_CONCAT?

sql - 从 Rails 模式文件中删除 SQL 代码

sql-server - 带有特殊字符的 cfinvokeargument 在 SELECT 中不起作用

SQL - 在 COUNT 中指定条件/在一个 SELECT 中多次从同一字段返回值

ms-access - 使用 VBA 设置子表单记录中的字段格式

excel - VBA - 加速 Access 发送的 Excel 指令

mysql - 为什么 NoSql 数据库的扩展性比关系数据库好?我应该如何选择它们?

java - 缓存数据库中的序列以减少数据库调用

arrays - 如何在 swift 中用 Ms SQL 查询结果填充数组?

ms-access - MS Access 中的 DoCmd.TransferText 不起作用 ("engine could not find the object")