发布网友 发布时间:2022-04-13 09:54
共3个回答
热心网友 时间:2022-04-13 11:23
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查询规格
热心网友 时间:2022-04-13 12:41
那只能先把一部分union all的结果插入临时表,再通过临时表之间做union all