不能使用子查询插入

时间:2015-09-15 15:45:56

标签: sql ms-access ms-access-2010 insert-into ansi-sql-92

这个问题非常奇怪,我认为与Access本身有关。

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

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

访问返回错误,说:

  

指令INSERT INTO包含未知字段C

然后我尝试了另一个看起来相同的查询:

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

错误:字段数不匹配。

但是没有子查询的查询工作真棒!

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

这就错了吗?

1 个答案:

答案 0 :(得分:0)

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

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

浪费了超过1小时才能解决。