禁用访问sql查询中的括号

时间:2009-08-25 14:12:15

标签: sql ms-access join

有没有办法告诉ms access(2003)而不是将连接放入括号中。或者至少在没有(每个其他数据库都有)的情况下理解它们

我想要类似的东西:

    SELECT *
      FROM a
INNER JOIN b
        ON a.a = b.a
INNER JOIN c
        ON b.c = c.c

但访问权限告诉我查询错误。它不是,它让我疯狂......

它还将所有连接放在一行中 - 无法读取

提前感谢。

PS。我已经在设置中激活了ANSI 92兼容性/支持

3 个答案:

答案 0 :(得分:2)

可悲的是,没有。 Access 2003就像SQL一样“愚蠢”。这是“错误的”,因为Access只能解析一个JOIN,这会让你感到愤怒(但仍然是正确的):

SELECT *
FROM a
INNER JOIN (b INNER JOIN c ON b.c = c.c)
    ON a.a = b.a

答案 1 :(得分:2)

请参阅访问帮助About ANSI SQL query mode (MDB)

  

这种模式与   ANSI-92 1级规范,但是   不符合ANSI-92 1级标准。

对于“ANSI-92”,请阅读“ANSI / ISO SQL-92”(以及“与”一致“阅读”模糊地类似“)。

底线:您必须包括括号。请注意,Access数据库引擎的优化程序可能会在其认为合适时更改表的顺序。

答案 2 :(得分:0)

我刚刚尝试过SQL Server兼容语法(ANSI 92)和Checked This Database。

我倾向于在图形查询构建器中设置所有表和连接,然后在处理所有括号时在SQL编辑器中进行自定义。方括号的使用也让我疯狂。我很幸运,我公司的大多数应用程序都是从Access迁移到SQL Server。