【问题标题】:How to combine more than 2 Microsoft Access tables into one table?如何将 2 个以上的 Microsoft Access 表合并到一个表中?
【发布时间】:2012-03-20 02:10:18
【问题描述】:

假设我有 10 个表,每个 tableN 都有一个 ID 和一个 ValueN。 我想将它们全部合并到一个包含以下内容的表中:

ID Value1 Value2 Value3 ...

ID 是唯一的,但每个表可以有任意数量的记录,因此结果行可以是:

001 3.1 Null 4.6 ...

我知道当只有 2 个表时如何进行这个简单的查询。但不知道比较 10 个表的 ID 值的最佳方法。

【问题讨论】:

    标签: ms-access ms-access-2010


    【解决方案1】:

    假设您有 3 张桌子(或任意数量的桌子)

    Table1:          Table2:           Table3
    ID  Value1       ID   Value2       ID   Value3
    1   A            1    AAA          1    111
    2   B            2    BBB          2    222
    3   C            5    EEE          3    333
                                       4    444
                                       5    555
    

    您可以使用这样的查询来确保从所有表中获取所有可能的数据:

    SELECT U.ID,
           Table1.Value1,
           Table2.Value2,
           Table3.Value3
    FROM   (((SELECT ID FROM Table1
              UNION
              SELECT ID FROM Table2
              UNION
              SELECT ID FROM Table3) AS U
             LEFT JOIN Table1 ON U.ID=Table1.ID)
            LEFT JOIN Table2 ON U.ID=Table2.ID)
           LEFT JOIN Table3 ON U.ID=Table3.ID; 
    

    其中的结果是:

    ID    Value1    Value2     Value3
    1     A         AAA        111
    2     B         BBB        222
    3     C                    333
    4                          444
    5               EEE        555    
    

    基本上,它只是每个表上的一系列LEFT JOIN,全部由所有表中所有可能的 ID 的并集连接:

    SELECT ID FROM Table1
    UNION
    SELECT ID FROM Table2
    UNION
    SELECT ID FROM Table3
    

    【讨论】:

      猜你喜欢
      • 2021-07-10
      • 2019-12-24
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多