Access是支持三表或三表以上的join查询的,但是要加括号,如果不加的话,会报错,括号的作用是决定join的顺序。例如:
SELECT *FROM (aa LEFT JOIN bb ON aa.a = bb.a ) LEFT JOIN cc ON cc.a = bb.a;
在SQL SERVER中,不加括号也可以,这是因为access使用的是JET-SQL,而SQL SERVER使用的是T-SQL,二者虽然都属于微软SQL语言分支,但是二者在语句上会有些区别。
还有一个问题需要注意是:在access使用join语句查询时,只有第一个join后on的条件中可以加多个条件,后面的只能有一个条件,如:
SELECT *FROM (aa LEFT JOIN bb ON aa.a = bb.a and aa.c=bb.c and bb.c=aa.a) LEFT JOIN cc ON cc.a = bb.a 这样就可以,
但是SELECT *FROM (aa LEFT JOIN bb ON aa.a = bb.a and aa.c=bb.c and bb.c=aa.a) LEFT JOIN cc ON cc.a = bb.a and aa.c=cc.c 就会提示:“不支持表达式”错误。