【问题标题】:How do I combine data from 3 different Access tables into one master table?如何将 3 个不同 Access 表中的数据合并到一个主表中?
【发布时间】:2014-08-06 04:09:12
【问题描述】:

我有 3 个访问表,其中包含过去 3 年的信息。每个都有大量相同的记录,但每个记录也有独特的记录。

2 个表具有相同的唯一主键 (ID),而第 3 个表具有不同的唯一 ID 集

如何将所有唯一 ID 组合并选择到一个主表中?谢谢

【问题讨论】:

  • 我很确定 Access 支持 union 和 union all,不是吗?

标签: ms-access


【解决方案1】:

不是 100% 确定我了解重叠发生的位置,但试试这个:

select ID
into All_Id
from (
  select ID from Table1
  union
  select ID from Table2
  union all
  select ID from Table3
)

这假定 Table1 和 Table2 可能共享一些 ID,并且您只希望它们列出一次,但 Table3 没有任何重叠。

说实话,将它们全部设为union 并没有什么坏处,除了可能让查询运行得更慢。

【讨论】:

    【解决方案2】:

    如果您需要唯一的 ID,请使用 UNION 查询。如果您想要所有内容,请使用 UNION ALL。

    UNION = 没有欺骗
    UNION ALL = 返回所有记录,包括重复记录

    Access 引擎支持联合查询,但您必须在 SQL 视图中手动编写联合查询。设计视图不可用。

    根据您过去三年的数据量,UNION 可能需要一些时间,甚至可能会崩溃几次。以防万一,我先做个备份。

    如果您想要纯粹的唯一 ID 和新表,我会这样做:

    1.) 编写您的联合查询。

    SELECT ID FROM Table1
    UNION
    SELECT ID FROM Table2
    ...
    

    2.) 保存查询。

    3.) 创建一个生成表查询(选择所有唯一 ID 并将其组合到一个可能的新主表中)。

    4.) 运行生成表查询。将创建新表。

    希望对您有所帮助。让我们知道你是怎么做到的!

    【讨论】:

    • +1 这绝对是一种以访问为中心的方式
    猜你喜欢
    • 2019-09-09
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 2015-10-29
    相关资源
    最近更新 更多