【问题标题】:How to define destination for an append query Microsoft Access如何定义附加查询的目标 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 部分定义了目标,但显然我错了。如何指定目的地?

【问题讨论】:

    标签: sql database ms-access inner-join


    【解决方案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 *,它将选择表中的所有内容。

      【讨论】:

        猜你喜欢
        • 2015-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多