ACCESS中union all超过了50次,现在显示查询过于复杂怎么办?谢谢
Access中 Union All超过50次,报错“查询过于复杂”是由于受到ACCESS规格限制所致(嵌套查询层次数最大为50)。
哪么union all 需要超过50次怎么办?我们可以将非常多的联合查询分解为多个子查询,而这些子查询的联合次数设定为比50小(例如20或40个等,但是不能太接近50),然后再将这些子查询联合起来。这样就可以有效规避“嵌套查询层次数最大为50”的限制,使得可用的union all 次数大为增加。下面是例句供参考:
select t1.* from
(select * from table1
union all
select * from table2
......
select * from table40)t1
union all
select t2.* from
(select * from table41
union all
select * from table42
......
select * from table80)t2
union all
select t3.* from
(select * from table81
union all
select * from table82
......
select * from table120)t3
union all
.......以此类推
通过上述方法编写SQL语句可用的联合次数可大幅增加,但是请注意即使如此有关查询还是要受到多种ACCESS规格的限制,例如SQL查询最大字符数为6400个左右等,编写代码时请留意。具体可参阅下图中的ACCESS查询规格