如何定义附加查询的目标 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
有两列名为 col1
和 col2
,并尝试将查询中的 col1
插入到 col1
中的 MainTable
中,依此类推。
如果MainTable
中的列名不同,需要在INSERT
子句中指定。
假设MainTable
中的列名为foo
和bar
,那么查询需要如下所示:
INSERT INTO MainTable (foo, bar)
SELECT col1, col2
FROM ...
【讨论】:
这以及卢克的回答非常有帮助。我希望我能接受两者,因为它们很好地结合在一起。【参考方案3】:正如其他用户所提到的,您的SELECT
语句是空的。但是,如果您想选择更多而不是 col1, col2
,这是可能的。如果要选择要追加的两个表中的所有列,可以使用SELECT *
,它将选择表中的所有内容。
【讨论】:
以上是关于如何定义附加查询的目标 Microsoft Access的主要内容,如果未能解决你的问题,请参考以下文章