有没有办法告诉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兼容性/支持
答案 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。