小编典典

UNION ALL查询:``已定义许多字段''。

sql

我试图得到3个表的UNION,每个表有97个字段。我尝试了以下方法:

select * from table1
union all
select * from table2
union all
select * from table3

这给我一个错误信息:

Too many fields defined.

我还尝试从第一个表中明确选择所有字段名称(为简洁起见添加了省略号):

select [field1],[field2]...[field97] from table1
union all
select * from table2
union all
select * from table3

当我只有UNION两个表时,它可以正常工作:

select * from table1
union all
select * from table2

由于该查询,我最终不应拥有超过97个字段;两张桌子的UNION只有97个。为什么我要买Too many fields3张桌子?

编辑:正如RichardTheKiwi在下面指出的那样,Access正在对UNION链中每个SELECT查询的字段计数求和,这意味着我的3个表超过了255个字段的最大值。因此,我需要这样编写查询:

select * from table1
union all
select * from
(select * from table2
union all
select * from table3)

效果很好。


阅读 170

收藏
2021-03-23

共1个答案

小编典典

看来,要跟踪的字段数(限制为255)是根据UNION ALL的所有部分计算的。因此3 x 97 =
291,这是多余的。您可能会创建一个由UNION(共2个部分)组成的查询,然后再创建一个包含第3个部分的查询。

2021-03-23