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

Posted

技术标签:

【中文标题】如何定义附加查询的目标 Microsoft Access【英文标题】:How to define destination for an append query Microsoft Access 【发布时间】:2015-05-20 03:16:29 【问题描述】:

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

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

其中“大学”是两个表之间唯一具有相似性的字段名称。当我尝试运行查询时,我收到此错误:

Query must have at least one destination field.

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

【问题讨论】:

【参考方案1】:

你必须从你的选择语句中选择一些东西。

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

【讨论】:

【参考方案2】:

除了Luke Ford's answer (这是正确的),还有另一个问题需要考虑:

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

INSERT INTO MainTable
SELECT col1, col2
FROM ...

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

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

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

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

【讨论】:

这以及卢克的回答非常有帮助。我希望我能接受两者,因为它们很好地结合在一起。【参考方案3】:

正如其他用户所提到的,您的SELECT 语句是空的。但是,如果您想选择更多而不是 col1, col2,这是可能的。如果要选择要追加的两个表中的所有列,可以使用SELECT *,它将选择表中的所有内容。

【讨论】:

以上是关于如何定义附加查询的目标 Microsoft Access的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql server用户定义函数中循环查询结果集?

Microsoft 自定义翻译和语音翻译 API

如何在JavaScript中预先添加/附加所有函数调用的结果

Microsoft Store附加组件批量销售

如何附加字典? [复制]

如何从子查询结果中选择值