如何定义附加查询 Microsoft Access 的目标

How to define destination for an append query Microsoft Access

我现在正在尝试在 MS Access 中附加两个表。这是我目前的 SQL 查询视图:

INSERT INTO MainTable
SELECT 
FROM Table1 INNER JOIN Table2 ON Table1.University = Table2.University;

其中 "University" 是 在两个表之间具有相似性的唯一字段名称。当我尝试 运行 查询时,出现此错误:

Query must have at least one destination field.

我假设 SQL 的 INSERT INTO MainTable 部分定义了目的地,但显然我错了。如何指定目的地?

您必须 select 您的 select 陈述中的内容。

INSERT INTO MainTable
SELECT col1, col2
FROM Table1 INNER JOIN Table2 ON Table1.University = Table2.University;

除了 (这是正确的),还有一个问题需要考虑:

MS Access (至少是 Access 2000,我刚刚在其中测试过) 似乎按名称匹配列。
换句话说,当你从 Luke 的答案中执行查询时:

INSERT INTO MainTable
SELECT col1, col2
FROM ...

...MS Access 假定 MainTable 有两个名为 col1col2 的列,并尝试将查询中的 col1 插入 col1MainTable 中,依此类推。

如果MainTable中的列名不同,需要在INSERT子句中指定。

假设 MainTable 中的列名为 foobar,则查询需要如下所示:

INSERT INTO MainTable (foo, bar)
SELECT col1, col2
FROM ...

正如其他用户所提到的,您的 SELECT 语句是空的。但是,如果您想 select 多于 col1, col2,那是可能的。如果您想要 select 两个表中要附加的所有列,您可以使用 SELECT *,这将 select 表中的所有内容。