Sql 不能将insert与子查询一起使用

Sql 不能将insert与子查询一起使用,sql,ms-access,ms-access-2010,insert-into,ansi-sql-92,Sql,Ms Access,Ms Access 2010,Insert Into,Ansi Sql 92,这个问题真的很奇怪,我相信与访问本身有关 我试图以这种方式插入真正简化的版本,但无论如何错误都是一样的: INSERT INTO phones(a, b) select * from ( select C, D from banks) AS BB; INSERT INTO phones(a, b) select BB.* from ( select C, D from banks) AS BB; INSERT INTO phones(a, b) select * from ( select

这个问题真的很奇怪,我相信与访问本身有关

我试图以这种方式插入真正简化的版本,但无论如何错误都是一样的:

INSERT INTO phones(a, b)
select * from ( select C, D from banks) AS BB;
INSERT INTO phones(a, b)
select BB.* from ( select C, D from banks) AS BB;
INSERT INTO phones(a, b)
select * from ( select C as a , D as b from banks) AS BB;
Access返回错误,表示:

指令插入到组未知字段C中

然后我尝试了另一个查询,看起来是一样的:

INSERT INTO phones(a, b)
select * from ( select C, D from banks) AS BB;
INSERT INTO phones(a, b)
select BB.* from ( select C, D from banks) AS BB;
INSERT INTO phones(a, b)
select * from ( select C as a , D as b from banks) AS BB;
错误:字段的数目不匹配

但是,不带子查询的查询非常有效

INSERT INTO phones(a, b)
select C, D from banks;

所以这是错误的?

正如我现在看到的,Access无法匹配字段本身,这就是为什么子查询中的名称应该相同的原因:

INSERT INTO phones(a, b)
select * from ( select C, D from banks) AS BB;
INSERT INTO phones(a, b)
select BB.* from ( select C, D from banks) AS BB;
INSERT INTO phones(a, b)
select * from ( select C as a , D as b from banks) AS BB;

浪费了1个多小时来解决。

为什么子查询插入phonesa,b从银行选择C,D;没用?@lad2025就像我说的那样,代码可以用,因为它没有任何子查询